
Analisi tecnica approfondita di CVE-2025-1974 (IngressNightmare), un RCE critico nel validating admission controller di ingress-nginx per Kubernetes, inclusi la causa principale, la catena di exploit e le linee guida per il rilevamento.
Questo documento presenta un'analisi della vulnerabilità CVE-2025-1974, che riguarda il componente ingress-nginx (validating admission controller) per Kubernetes.
CVE-2025-1974 è una vulnerabilità critica (CVSS 3.1 9.8), che consiste in un Remote Code Execution (RCE) non autenticato nel contesto del processo ingress-nginx. Durante un attacco, un malintenzionato con accesso alla pod network (o in grado di inviare un AdmissionReview al validating webhook) può ottenere l'esecuzione di codice arbitrario nel pod del controller, portando potenzialmente alla divulgazione di Secrets e alla compromissione del cluster.
Ingress-nginx è uno dei controller Ingress più diffusi in Kubernetes (le stime indicano un utilizzo in decine di percentuali dei cluster), quindi l'impatto pratico della vulnerabilità è molto elevato. Descrizione, analisi tecnica e raccomandazioni ufficiali per le correzioni sono state pubblicate da Kubernetes, dai ricercatori di Wiz e da vari blog di vendor.
Analizzare passo dopo passo CVE-2025-1974 e preparare i materiali necessari per un write-up:
Questa ricerca è condotta esclusivamente a scopo educativo ed etico ed è rivolta ad ambienti di test/controllati.
In nessun caso eseguire exploit/PoC contro cluster altrui o istanze pubblicamente accessibili senza autorizzazione scritta del proprietario. Pubblicare un PoC completamente funzionante e "weaponized" in forma aperta aumenta notevolmente il rischio di abusi — nella parte pubblica è meglio fornire un safe-PoC e la metodologia. (Anche gli advisory ufficiali e i vendor sottolineano la cautela nella diffusione degli exploit).
cpe:2.3:a:kubernetes:ingress-nginx_controller:<version> — versioni vulnerabili di ingress-nginx (negli advisory sono indicate versioni specifiche; aggiornare i valori al momento della pubblicazione finale).Condizioni di configurazione per cui la vulnerabilità è rilevante:
Riassunto breve.
La vulnerabilità è stata scoperta nel componente Validating Admission Controller del controller Ingress-NGINX ed è legata al modo in cui questo componente genera e verifica la configurazione temporanea di NGINX sulla base degli Ingress / AdmissionReview in arrivo. Durante l'elaborazione, il controller genera nginx.conf ed esegue un controllo della configurazione (nginx -t). A causa di una sanificazione insufficiente dei campi di Ingress/AdmissionReview, un attaccante può iniettare frammenti appositamente predisposti che finiscono nella configurazione generata, portando all'esecuzione di comandi all'interno del processo del controller — ovvero a un'esecuzione remota di codice (RCE) nel pod di ingress-nginx.
AdmissionReview/Ingress in arrivo, ricevuti dal validating webhook del controller, diventano dati di origine per la generazione della configurazione NGINX (inclusi campi di annotazioni, impostazioni backend, ecc.).Ingress malevolo o un AdmissionReview diretto può inserire stringhe controllate nei template/frammenti di configurazione. Durante la verifica/caricamento di questo nginx.conf, il processo di verifica (nginx -t) e le successive operazioni sul file di configurazione possono portare all'esecuzione di codice arbitrario, alla scrittura/esecuzione di file o all'esecuzione di comandi nel contesto del controller.AdmissionReview al validating webhook (accesso dalla pod network o accesso di rete diretto); assenza di misure compensative — NetworkPolicy, restrizioni RBAC o autenticazione aggiuntiva del webhook. In alcuni scenari, l'elusione dei permessi Create/Update è possibile inviando un AdmissionReview appositamente costruito direttamente al webhook.
Uno sfruttamento riuscito consente l'esecuzione di codice nel container ingress-nginx, che di solito permette di: