
Procédure pas à pas: injection de configuration ingress-nginx via l'annotation rewrite-target
Mots-clés : CVE-2026-3288, vulnérabilité ingress-nginx, sécurité Kubernetes, injection de configuration nginx, annotation rewrite-target, RCE, divulgation de Secrets, CWE-20, CAPEC-176, CVE ingress-nginx 2026, compromission de cluster Kubernetes
Un problème de sécurité a été découvert dans ingress-nginx, où l'annotation Ingress nginx.ingress.kubernetes.io/rewrite-target peut être utilisée pour injecter une configuration dans nginx. Cela peut conduire à une exécution de code arbitraire dans le contexte du contrôleur ingress-nginx ainsi qu'à la divulgation des Secrets accessibles au contrôleur. (Notez que, dans l'installation par défaut, le contrôleur peut accéder à tous les Secrets du cluster.)
Découvert par : Kai Aizen
Publié : 9 mars 2026
Score CVSS : 8,8 (Élevé)
CWE : CWE-20 — Validation des entrées incorrecte
CAPEC : CAPEC-176 — Manipulation de la configuration/de l'environnement
Composant : ingress-nginx
Type d'attaque : Injection de configuration nginx via annotation Ingress
Privilèges requis : Faibles (PR:L)
L'annotation Ingress nginx.ingress.kubernetes.io/rewrite-target a pour but de modifier le chemin de la requête avant qu'elle ne soit transmise aux services en amont. Cependant, l'implémentation permet l'injection de directives de configuration arbitraires directement dans la configuration nginx sous-jacente.
Un attaquant disposant de la capacité de créer ou de modifier des ressources Ingress peut en tirer parti pour :
| Domaine d'impact | Gravité |
|---|---|
| Confidentialité | Élevée — Divulgation complète des Secrets (à l'échelle du cluster dans la configuration par défaut) |
| Intégrité | Élevée — Exécution de code arbitraire dans le contexte du contrôleur |
| Disponibilité | — Compromission totale du contrôleur ingress-nginx |
Le problème fondamental est que ingress-nginx traite la valeur de l'annotation rewrite-target sans validation d'entrée suffisante, ce qui permet à un contenu contrôlé par l'attaquant d'être écrit directement dans la configuration nginx. Il s'agit d'une vulnérabilité d'injection de configuration — la valeur de l'annotation est considérée comme un simple chemin de réécriture, mais elle peut contenir des directives nginx arbitraires.
La vulnérabilité est accessible par tout utilisateur disposant des permissions de créer ou de modifier des ressources Ingress dans un cluster exécutant ingress-nginx. L'attaque nécessite :
Cette vulnérabilité appartient à une classe bien établie de bugs d'injection d'annotations dans ingress-nginx :
Le schéma récurrent : les valeurs d'annotations transitent vers la configuration nginx sans assainissement adéquat. Des annotations différentes, la même cause racine.
| Branche | Vulnérable | Corrigé |
|---|---|---|
| 1.13.x | < 1.13.8 | 1.13.8 |
| 1.14.x | < 1.14.4 |
# 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
Si vous n'avez pas ingress-nginx installé sur votre cluster, vous n'êtes pas concerné.
Mettez à jour ingress-nginx vers la version corrigée correspondant à votre branche :
# Using Helm
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--version <patched-chart-version>
Consultez la documentation officielle de mise à jour : Mise à jour d'Ingress-nginx
Utilisez le contrôle d'admission pour bloquer l'utilisation de l'annotation rewrite-target jusqu'à ce que vous puissiez effectuer la mise à jour :
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
Des données suspectes dans le champ rules.http.paths.path d'une ressource Ingress pourraient indiquer une tentative d'exploitation de cette vulnérabilité.
# 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"]}'
Si vous trouvez des preuves que cette vulnérabilité a été exploitée, contactez [email protected].
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Date | Événement |
|---|---|
| — | Vulnérabilité découverte et signalée au comité de réponse de sécurité de Kubernetes |
| 9 mars 2026 | Avis de sécurité publié |
| 9 mars 2026 | Versions corrigées publiées (1.13.8, 1.14.4, 1.15.0) |
| 9 mars 2026 | CVE-2026-3288 attribuée |
Chercheur : Kai Aizen — SnailSploit
Remerciements : Tabitha Sable au nom du comité de réponse de sécurité de Kubernetes
Ces informations sont fournies à des fins de recherche en sécurité et de défense uniquement. Toute exploitation de cette vulnérabilité à des fins malveillantes est illégale et contraire à l'éthique. Obtenez toujours une autorisation appropriée avant de tester des systèmes qui ne vous appartiennent pas.
Pour toute question ou information supplémentaire sur cette vulnérabilité :
Dernière mise à jour : 10 mars 2026
L'analyse complète de ce projet, la méthodologie et les recherches associées sont disponibles sur :
https://snailsploit.com/security-research/cves/cve-2026-3288/
Créé par Kai Aizen — chercheur indépendant en sécurité offensive.
snailsploit.com · Recherche · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter
Même attaque. Substrat différent.
| CVE | Année | Annotation | Impact |
|---|
| CVE-2021-25746 | 2022 | Diverses annotations | Injection de directives |
| CVE-2023-5044 | 2023 | permanent-redirect | Injection de code |
| CVE-2024-7646 | 2024 | Contournement de validation d'annotations | Contournement de validation |
| CVE-2026-3288 | 2026 | rewrite-target | RCE + divulgation de Secrets |
| 1.15.x | < 1.15.0 | 1.15.0 |
| Métrique | Valeur |
|---|
| Vecteur d'attaque | Réseau (AV:N) |
| Complexité de l'attaque | Faible (AC:L) |
| Privilèges requis | Faibles (PR:L) |
| Interaction utilisateur | Aucune (UI:N) |
| Portée | Inchangée (S:U) |
| Confidentialité | Élevée (C:H) |
| Intégrité | Élevée (I:H) |
| Disponibilité | Élevée (A:H) |