
Eingehende technische Analyse von CVE-2025-1974 (IngressNightmare), einer kritischen RCE im ingress-nginx Validating Admission Controller für Kubernetes, einschließlich Ursachenanalyse, Exploit-Kette und Erkennungsanleitung.
Dieses Dokument bietet eine Untersuchung der Schwachstelle CVE-2025-1974, die die Komponente ingress-nginx (Validating Admission Controller) für Kubernetes betrifft.
CVE-2025-1974 ist eine kritische Schwachstelle (CVSS 3.1 9.8), die eine nicht authentifizierte Remote Code Execution (RCE) im Kontext des ingress-nginx-Prozesses darstellt. Bei Ausführung des Angriffs kann ein Angreifer, der Zugriff auf das Pod-Netzwerk hat (oder eine AdmissionReview an den Validating Webhook senden kann), die Ausführung beliebigen Codes im Pod des Controllers erreichen, was potenziell zur Offenlegung von Secrets und zur Übernahme des Clusters führt.
Ingress-nginx ist einer der am weitesten verbreiteten Ingress-Controller in Kubernetes (Schätzungen gehen von einer Nutzung in Dutzenden von Prozent der Cluster aus), daher ist die praktische Auswirkung der Schwachstelle sehr hoch. Beschreibung, technische Analyse und offizielle Empfehlungen für Fixes wurden von Kubernetes, Forschern von Wiz und mehreren Vendor-Blogs veröffentlicht.
Schrittweise Analyse von CVE-2025-1974 und Erstellung der für einen Write-up erforderlichen Materialien:
Diese Untersuchung dient ausschließlich Bildungs- und ethischen Zwecken und ist auf Test-/kontrollierte Umgebungen ausgerichtet.
Starte unter keinen Umständen Exploits/PoCs gegen fremde Cluster oder öffentlich zugängliche Instanzen ohne schriftliche Genehmigung des Eigentümers. Die Veröffentlichung eines voll funktionsfähigen, „weaponized“ PoC im offenen Raum erhöht das Risiko von Missbrauch erheblich – im öffentlichen Teil sind besser ein Safe-PoC und die Methodik anzugeben. (Offizielle Advisories und Anbieter betonen ebenfalls die Vorsicht bei der Verbreitung von Exploits.)
cpe:2.3:a:kubernetes:ingress-nginx_controller:<version> — anfällige Versionen von ingress-nginx (in den Advisories sind konkrete Versionen angegeben; aktualisieren Sie die Werte bei der endgültigen Veröffentlichung).Konfigurationsbedingungen, unter denen die Schwachstelle relevant ist:
Kurzfassung.
Die Schwachstelle wurde in der Komponente Validating Admission Controller des Controllers Ingress-NGINX entdeckt und hängt damit zusammen, wie diese Komponente temporäre NGINX-Konfigurationen basierend auf eingehenden Ingress / AdmissionReview erstellt und überprüft. Während der Verarbeitung generiert der Controller nginx.conf und führt eine Konfigurationsprüfung (nginx -t) durch. Bei unzureichender Bereinigung der Felder von Ingress/AdmissionReview kann ein Angreifer speziell präparierte Fragmente einfügen, die in die generierte Konfiguration gelangen und letztlich zur Ausführung von Befehlen im Controller-Prozess führen – also zu Remote Code Execution (RCE) im Pod von ingress-nginx.
AdmissionReview/Ingress-Objekte, die vom Validating Webhook des Controllers akzeptiert werden, dienen als Ausgangsdaten für die Generierung der NGINX-Konfiguration (einschließlich Annotationsfelder, Backend-Einstellungen usw.).Ingress oder eine direkte AdmissionReview kann kontrollierte Zeichenfolgen in Vorlagen/Konfigurationsfragmente einschleusen. Bei der Überprüfung/Ladung einer solchen nginx.conf kann der Prüfprozess (nginx -t) und nachfolgende Operationen mit der Konfigurationsdatei zur Ausführung beliebigen Codes, zum Schreiben/Starten von Dateien oder zur Ausführung von Befehlen im Kontext des Controllers führen.AdmissionReview an den Validating Webhook zu senden (Zugriff aus dem Pod-Netzwerk oder direkter Netzwerkzugriff); Fehlen von Ausgleichsmaßnahmen – NetworkPolicy, RBAC-Einschränkungen oder zusätzliche Webhook-Authentifizierung. In einigen Szenarien kann die Einschränkung der Create/Update-Berechtigungen umgangen werden, indem eine manipulierte AdmissionReview direkt an den Webhook gesendet wird.
Eine erfolgreiche Ausnutzung ermöglicht die Codeausführung im Container von ingress-nginx, was in der Regel Folgendes erlaubt:
ingress-nginx-controller-admission und dem Service ingress-nginx-controller von ungewöhnlichen Quellen auf (in Berichten von Containern wie alpine), was bei normalem Betrieb nicht vorkommen sollte.nginx -t und plötzliche Neustarts des Controllers sowie unerwartete Dateischreiboperationen durch den ingress-nginx-Prozess.Ingress-NGINX ist einer der am weitesten verbreiteten Ingress-Controller in Kubernetes (wird häufig zur Organisation des externen Zugriffs auf Dienste verwendet). Der Controller fungiert als Reverse Proxy: Er nimmt externen Traffic entgegen und leitet ihn basierend auf einer Reihe von Ingress-Regeln an die entsprechenden Services/Pods weiter. Das Projekt Ingress-NGINX erfreut sich großer Beliebtheit und hat einen erheblichen Installationsanteil in internetzugänglichen Clustern.
Ingress-NGINX wird in der Kubernetes-Dokumentation als Referenzbeispiel für einen Ingress-Controller angeführt. Schätzungen zufolge verwenden ein erheblicher Teil der offenen Cluster genau diesen Controller; in einigen Studien wird angegeben, dass etwa 41 % der öffentlich zugänglichen Cluster Ingress-NGINX verwenden. Gerade wegen der weiten Verbreitung und der zentralen Rolle bei der Verkehrslenkung haben Schwachstellen in dieser Komponente eine hohe praktische Auswirkung.
validate.nginx.ingress.kubernetes.io). Dies macht es einfach, von innerhalb des Clusters darauf zuzugreifen.Ingress / AdmissionReview erstellt, bei dem bestimmte Felder bösartige Zeichenfolgen enthalten, die nicht ordnungsgemäß gefiltert wurden.nginx.conf und führt nginx -t / andere Prüfoperationen durch.Solche Schwachstellen sind besonders gefährlich in Kombination mit anderen Defekten: Ein kompromittierter Pod (oder SSRF in einer öffentlichen Anwendung) + exponierter Validating Webhook bietet eine hohe Wahrscheinlichkeit einer vollständigen Kompromittierung. Daher sollte die Analyse von Vorfällen die Abhängigkeitskette und potenzielle Vektoren berücksichtigen, nicht nur die Version von ingress-nginx.