
Walkthrough: ingress-nginx Konfigurations-Injection über rewrite-target Annotation
Schlüsselwörter: CVE-2026-3288, ingress-nginx vulnerability, Kubernetes security, nginx configuration injection, rewrite-target annotation, RCE, Secret disclosure, CWE-20, CAPEC-176, ingress-nginx CVE 2026, Kubernetes cluster compromise
In ingress-nginx wurde ein Sicherheitsproblem entdeckt, bei dem die Ingress-Annotation nginx.ingress.kubernetes.io/rewrite-target verwendet werden kann, um Konfiguration in nginx einzuschleusen. Dies kann zur Ausführung von beliebigem Code im Kontext des ingress-nginx-Controllers und zur Offenlegung von Secrets führen, die für den Controller zugänglich sind. (Beachten Sie, dass der Controller in der Standardinstallation auf alle Secrets clusterweit zugreifen kann.)
Entdeckt von: Kai Aizen
Veröffentlicht: 9. März 2026
CVSS-Punktzahl: 8.8 (Hoch)
CWE: CWE-20 — Unzureichende Eingabevalidierung
CAPEC: CAPEC-176 — Konfigurations-/Umgebungsmanipulation
Komponente: ingress-nginx
Angriffstyp: Nginx-Konfigurationsinjektion über Ingress-Annotation
Erforderliche Berechtigungen: Niedrig (PR:L)
Die Ingress-Annotation nginx.ingress.kubernetes.io/rewrite-target soll den Anfragepfad ändern, bevor er an Upstream-Dienste weitergeleitet wird. Die Implementierung erlaubt jedoch das Einschleusen beliebiger Konfigurationsdirektiven direkt in die zugrunde liegende nginx-Konfiguration.
Ein Angreifer mit der Fähigkeit, Ingress-Ressourcen zu erstellen oder zu ändern, kann dies nutzen, um:
| Auswirkungsbereich | Schweregrad |
|---|---|
| Vertraulichkeit | Hoch — Vollständige Offenlegung von Secrets (clusterweit in Standardkonfiguration) |
| Integrität | Hoch — Beliebige Codeausführung im Controller-Kontext |
| Verfügbarkeit | Hoch — Vollständige Kompromittierung des ingress-nginx-Controllers |
Das Kernproblem ist, dass ingress-nginx den Wert der rewrite-target-Annotation ohne ausreichende Eingabevalidierung verarbeitet, sodass vom Angreifer kontrollierter Inhalt direkt in die nginx-Konfiguration geschrieben werden kann. Dies ist eine Konfigurationsinjektions-Schwachstelle – der Wert der Annotation wird als einfacher Rewrite-Pfad vertraut, kann aber beliebige nginx-Direktiven enthalten.
Die Schwachstelle ist für jeden Benutzer erreichbar, der Berechtigungen zum Erstellen oder Ändern von Ingress-Ressourcen in einem Cluster mit ingress-nginx hat. Der Angriff erfordert:
Diese Schwachstelle gehört zu einer etablierten Klasse von Annotation-Injektionsfehlern in ingress-nginx:
| CVE | Jahr | Annotation | Auswirkung |
|---|---|---|---|
| CVE-2021-25746 | 2022 | Verschiedene Annotationen | Direktiveninjektion |
| CVE-2023-5044 | 2023 | permanent-redirect | Codeinjektion |
| CVE-2024-7646 | 2024 | Umgehung der Annotation-Validierung | Validierungsumgehung |
| CVE-2026-3288 | 2026 | rewrite-target | RCE + Secret-Offenlegung |
Das wiederkehrende Muster: Annotationswerte gelangen ohne ausreichende Bereinigung in die nginx-Konfiguration. Unterschiedliche Annotationen, gleiche Grundursache.
| Branch | Verwundbar | Behoben |
|---|---|---|
| 1.13.x | < 1.13.8 | 1.13.8 |
| 1.14.x | < 1.14.4 | 1.14.4 |
| 1.15.x | < 1.15.0 | 1.15.0 |
# Check if ingress-nginx is installed
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
# Check ingress-nginx version
kubectl exec -n ingress-nginx \
$(kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') \
-- /nginx-ingress-controller --version
If you do not have ingress-nginx installed on your cluster, you are not affected.
Führen Sie ein Upgrade von ingress-nginx auf die gepatchte Version für Ihren Branch durch:
# Using Helm
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--version <patched-chart-version>
Siehe offizielle Upgrade-Dokumentation: Upgrading Ingress-nginx
Verwenden Sie Admission Control, um die Verwendung der rewrite-target-Annotation zu blockieren, bis Sie ein Upgrade durchführen können:
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: block-rewrite-target
webhooks:
- name: block-rewrite-target.security.local
rules:
- apiGroups: ["networking.k8s.io"]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["ingresses"]
clientConfig:
# Point to a webhook service that rejects Ingress resources
# containing the rewrite-target annotation
Verdächtige Daten im Feld rules.http.paths.path einer Ingress-Ressource könnten auf einen Versuch hinweisen, diese Schwachstelle auszunutzen.
# Check for suspicious Ingress annotations
kubectl get ingress --all-namespaces -o json | \
jq '.items[] | select(.metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"] != null) | {namespace: .metadata.namespace, name: .metadata.name, rewrite: .metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"]}'
Wenn Sie Hinweise darauf finden, dass diese Schwachstelle ausgenutzt wurde, kontaktieren Sie [email protected].
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Metrik | Wert |
|---|---|
| Angriffsvektor | Netzwerk (AV:N) |
| Angriffskomplexität | Niedrig (AC:L) |
| Erforderliche Berechtigungen | Niedrig (PR:L) |
| Benutzerinteraktion | Keine (UI:N) |
| Scope | Unverändert (S:U) |
| Vertraulichkeit | Hoch (C:H) |
| Integrität | Hoch (I:H) |
| Verfügbarkeit | Hoch (A:H) |
| Datum | Ereignis |
|---|---|
| — | Schwachstelle entdeckt und an das Kubernetes Security Response Committee gemeldet |
| 9. März 2026 | Sicherheitshinweis veröffentlicht |
| 9. März 2026 | Gepatchte Versionen veröffentlicht (1.13.8, 1.14.4, 1.15.0) |
| 9. März 2026 | CVE-2026-3288 zugewiesen |
Forscher: Kai Aizen — SnailSploit
Danksagung: Tabitha Sable im Namen des Kubernetes Security Response Committee
Diese Informationen werden ausschließlich zu Sicherheitsforschungs- und Verteidigungszwecken bereitgestellt. Jede Ausnutzung dieser Schwachstelle für böswillige Zwecke ist illegal und unethisch. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie Systeme testen, die Ihnen nicht gehören.
Zuletzt aktualisiert: 10. März 2026
Die vollständige Ausarbeitung, Methodik und zugehörige Forschung dieses Projekts befindet sich unter:
Erstellt von Kai Aizen — unabhängiger offensive Sicherheitsforscher.
snailsploit.com · Forschung · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter
Gleicher Angriff. Anderes Substrat.