
Ein minimales Testwerkzeug zur Erkennung von Annotation-Injection-Schwachstellen in Kubernetes-NGINX-Ingress-Controllern. Dieses Skript sendet eine präparierte AdmissionReview-Anfrage, um einen potenziellen Exploit-Pfad aus CVE-2025-1974 zu simulieren, und prüft auf Anzeichen fehlinterpretierter Annotationen in den Controller-Logs.
Dieses Skript testet auf Annotation-Injection-Schwachstellen in Kubernetes-Clustern unter Verwendung des NGINX Ingress Controllers. Es ist ausschließlich für Erkennungszwecke im Zusammenhang mit CVE-2025-1974 gedacht, die es bösartigen Annotationen ermöglicht, die NGINX-Konfiguration zu beeinflussen.
Die von Wiz.io offengelegte Schwachstelle (Blogbeitrag) betrifft das Injizieren von Annotationen, die vom Controller nicht ordnungsgemäß verarbeitet werden. Zum Beispiel:
nginx.ingress.kubernetes.io/auth-url: "http://placeholder/#; error_log /root/this_path_shouldnt_exist.log debug; #"
Dies kann zu unerwartetem NGINX-Konfigurationsverhalten und Berechtigungsfehlern führen, wenn es verarbeitet wird. In fortgeschritteneren Szenarien könnte diese Art von Injection mit anderen Fehlkonfigurationen verknüpft werden, um eine Remote-Code-Ausführung (RCE) zu erreichen.
AdmissionReview-Payload aus einer YAML-Datei./validate-Endpunkt des Admission Controllers.admission_review.yaml: Enthält die präparierte AdmissionReview-Anfrage.main.py: Sendet die Payload an den Controller.Leiten Sie zunächst den Port des Admission Controllers weiter:
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller-admission 8443:443
Dann führen Sie aus:
python main.py --url https://localhost:8443
Überprüfen Sie die Logs des Ingress Controllers:
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller
Möglicherweise sehen Sie:
nginx: [emerg] open() "/root/this_path_shouldnt_exist.log" failed (13: Permission denied)
Dies deutet darauf hin, dass die Annotation fälschlicherweise als Direktive ausgeführt wurde.
Nur für Bildungszwecke und autorisierte Tests. Nicht auf Systemen ohne Genehmigung ausführen.
Verwenden Sie dieses Tool, um zu überprüfen, ob Ihr Cluster anfällig für Annotation-Injection über NGINX Ingress ist. Die Ausnutzung dieser Schwachstelle kann Teil einer breiteren Angriffskette sein, die zu Remote-Code-Ausführung führt.