I ricercatori di Akamai hanno individuato tre vulnerabilità a rischio elevato in Kubernetes che consentono l’esecuzione di codice remota con privilegi di amministratore su tutti gli endpoint Windows in un cluster.
Il team di sicurezza aveva inizialmente individuato solo una delle vulnerabilità, la CVE-2023-3676, che consente a un utente in grado di creare pod sui nodi Windows di ottenere i privilegi di amministratore su questi nodi. Kubernetes aveva confermato che il bug colpiva solo i cluster con nodi Windows, in qualsiasi ambiente.
Nel dettaglio, la vulnerabilità sfrutta la validazione dei parametri contenuti nel file YAML del pod, utilizzato per definire, tra le altre cose, la configurazione dei volumi, ovvero le cartelle condivise tra il pod e l’host. Il file contiene un parametro, chiamato “subPath”, che viene inserito ed eseguito in un comando PowerShell per determinare il tipo di percorso (per esempio se si stratta di un link simbolico o meno); un attaccante in grado di creare pod, quindi, può inserire nel parametro un comando PowerShell per ottenere privilegi più elevati.
L’analisi di Akamai sulla vulnerabilità di Kubernetes ha portato alla scoperta di altri due bug, il CVE-2023-3955 e il CVE-2023-3893, anch’essi vulnerabilità di command injection presenti nei cluster con nodi Windows.
Il fix del team di Kubernetes consiste nel passare i parametri al file YAML utilizzando le variabili d’ambiente invece che l’input utente, usando quindi direttamente il valore della stringa in modo che non venga valutata come espressione da PowerShell.
Inoltre, è importante aggiornare regolarmente Kubernetes e monitorare gli aggiornamenti di sicurezza sulle piattaforme supportate per proteggere i cluster da vulnerabilità note.