6.000 cluster Kubernetes vulnerabili a un attacco da remoto

L’azienda di sicurezza informatica Wiz, recentemente acquisita da Google, ha scoperto gravi vulnerabilità nel componente admission controller di Ingress-Nginx Controller, che potrebbero consentire il totale controllo dei cluster Kubernetes.
I cluster Kubernetes (K8s) sono più esposti al traffico HTTP/S esterno di quanto si possa pensare, poiché devono consentire l’accesso alle applicazioni che ospitano. Tuttavia, rendere accessibile anche l’admission controller rappresenta un rischio significativo. In Kubernetes, il termine “ingress” si riferisce alla gestione del traffico in entrata e le regole su come gestire questo traffico sono definite negli ingress objects elaborati da un ingress controller.
Secondo Tabitha Sable, membro del team di Kubernetes, un ingress controller traduce la definizione di un ingress object in configurazioni per risorse locali o cloud, adattandole alle esigenze dell’utente. Ingress-Nginx, nello specifico, converte questi ingress objects in configurazioni per Nginx, un web server open source molto potente. Nginx, a sua volta, utilizza queste configurazioni per accettare e instradare le richieste verso le applicazioni presenti all’interno del cluster Kubernetes. La gestione corretta dei parametri di configurazione di Nginx è cruciale per garantire la sicurezza del sistema, poiché un’errata configurazione potrebbe consentire a utenti malintenzionati di sfruttare vulnerabilità nel sistema.
Secondo i ricercatori di Wiz, l’admission controller di Ingress-Nginx non gestisce correttamente queste configurazioni. Quando il controller elabora un ingress object in arrivo, genera una configurazione per Nginx e la convalida utilizzando il binario Nginx. Tuttavia, Wiz ha individuato una vulnerabilità in questa fase che consente di iniettare configurazioni arbitrarie di Nginx da remoto, inviando un ingress object malevolo direttamente all’admission controller tramite la rete.
Ciò significa che, se un attaccante riesce a raggiungere un admission controller vulnerabile, può sfruttare questa falla per ottenere l’esecuzione remota di codice (RCE) all’interno del pod dell’Ingress-Nginx Controller. Condizione è particolarmente critica poiché gli admission controller dispongono di privilegi elevati e di un accesso illimitato alla rete, permettendo l’esecuzione di malware con conseguenze devastanti.
Gli esperti di Wiz avvertono che un attaccante potrebbe sfruttare questa vulnerabilità per eseguire codice arbitrario e ottenere l’accesso a tutti i segreti del cluster, fino a prendere il controllo totale del cluster. Secondo l’azienda, oltre 6.500 installazioni Kubernetes esposte pubblicamente contengono admission controllers vulnerabili, alcune delle quali appartenenti a compagnie Fortune 500.
Fortunatamente, il problema è stato segnalato agli sviluppatori di Kubernetes tra dicembre 2024 e gennaio 2025. Il 10 marzo sono state rilasciate patch per cinque vulnerabilità, denominate collettivamente “IngressNightmare” da Wiz, i cui dettagli sono stati mantenuti riservati fino ad oggi. Le versioni Nginx Controller 1.12.1 e 1.11.5 risolvono questi problemi e sono già disponibili per il download.
Tuttavia, non tutti gli utenti di Kubernetes applicano tempestivamente gli aggiornamenti di sicurezza. La vulnerabilità più critica, CVE-2025-1974, ha ottenuto un punteggio di 9.8 su 10 nel sistema di valutazione CVSS (Common Vulnerability Scoring System) e anche altre vulnerabilità, come CVE-2025-1097, CVE-2025-1098 e CVE-2025-24514, presentano un rischio elevato con un punteggio di 8.8.
Ora che le vulnerabilità sono pubbliche, Wiz raccomanda di aggiornare i sistemi il prima possibile, pur riconoscendo che non tutti i cluster Kubernetes possono essere aggiornati immediatamente, poiché spesso eseguono applicazioni critiche che non possono essere interrotte facilmente.
Per mitigare il rischio, Wiz suggerisce sia di applicare politiche di rete restrittive per garantire che solo il Kubernetes API Server possa accedere all’admission controller, sia di disabilitare temporaneamente il componente admission controller di Ingress-Nginx nel caso in cui l’aggiornamento immediato non fosse possibile.