
Un tool di test minimo per aiutare a rilevare vulnerabilità di iniezione di annotazioni nei controller NGINX Ingress di Kubernetes. Questo script invia una richiesta AdmissionReview appositamente creata per simulare un potenziale percorso di exploit da CVE-2025-1974 e verifica la presenza di segni di annotazioni interpretate erroneamente nei log del controller.
Questo script testa le vulnerabilità di iniezione di annotazioni nei cluster Kubernetes utilizzando il NGINX Ingress Controller. È destinato solo a scopi di rilevamento in relazione a CVE-2025-1974, che consente ad annotazioni dannose di influenzare la configurazione di NGINX.
La vulnerabilità, divulgata da Wiz.io (articolo del blog), comporta l'iniezione di annotazioni gestite in modo improprio dal controller. Ad esempio:
nginx.ingress.kubernetes.io/auth-url: "http://placeholder/#; error_log /root/this_path_shouldnt_exist.log debug; #"
Ciò può portare a comportamenti imprevisti della configurazione di NGINX ed errori di permesso se elaborato. In scenari più avanzati, questo tipo di iniezione potrebbe essere concatenato con altre configurazioni errate per ottenere l'esecuzione di codice remoto (RCE).
AdmissionReview predisposto da un file YAML./validate del controller di ammissione.admission_review.yaml: Contiene la richiesta AdmissionReview predisposta.main.py: Invia il payload al controller.Per prima cosa, inoltra la porta del controller di ammissione:
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller-admission 8443:443
Poi esegui:
python main.py --url https://localhost:8443
Controlla i log del controller Ingress:
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller
Potresti vedere:
nginx: [emerg] open() "/root/this_path_shouldnt_exist.log" failed (13: Permission denied)
Questo indica che l'annotazione è stata eseguita impropriamente come direttiva.
Solo per test educativi e autorizzati. Non eseguire su sistemi senza autorizzazione.
Usa questo strumento per verificare se il tuo cluster è vulnerabile all'iniezione di annotazioni tramite NGINX Ingress. Lo sfruttamento di questa vulnerabilità potrebbe far parte di una catena di attacco più ampia che porta all'esecuzione di codice remoto.