Perché è una brutta idea fare girare workload Windows su Kubernetes? Ad esempio perché esiste un CVE che bypassa runAsNonRoot

0

Una delle prerogative del nostro container orchestrator prediletto, che per chi non lo sapesse è Kubernetes, è il fatto che di default nessun container viene fatto girare con privilegi amministrativi, nella fattispecie non ci sono container che girano come root.

Per far sì che questo avvenga è necessario applicare determinate impostazioni ai deployment Kubernetes, ed implicitamente anche a quelli OpenShift (che lo ricordiamo di Kubernetes è una distribuzione).

Almeno, così eravamo convinti fossero le cose, finché non ci siamo imbattuti nel CVE-2021-25749. Certo riguarda solo i così detti workload Windows (perché lo sapevate tutti vero che Kubernetes può far girare questo tipo di workload, vero?), ma la sostanza rimane. A causa di questa CVE la logica che sta dietro all’impostazione runAsNonRoot viene bypassata.

Il problema, come indica il report, i seguenti “range” di versioni di Kubernetes:

  • kubelet v1.20 – v1.21
  • kubelet v1.22.0 – v1.22.13
  • kubelet v1.23.0 – v1.23.10
  • kubelet v1.24.0 – v1.24.4

E, udite udite, non ci sono mitigazioni di alcun tipo, semplicemente va aggiornata la versione di Kubernetes che state utilizzando. Le versioni senza il problema sono queste:

  • kubelet v1.22.14
  • kubelet v1.23.11
  • kubelet v1.23.5
  • kubelet v1.25.0

Esiste una pagina GitHub dedicata alla vulnerabilità che contiene tutte le informazioni che abbiamo riportato, oltre che ai vari riferimenti relativi alla issue.

Quindi, se proprio dovete far girare i vostri container in ambiente Windows controllate la versione ed eventualmente… Aggiornate!

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.