
Boîte à outils d’audit et de formation pour CVE-2026-5006, une vulnérabilité d’injection par barre oblique dans les politiques basées sur des modèles de Vault. Comprend un script d’audit en lecture seule générant des rapports Markdown et une démonstration interactive pour la remédiation.
Deux outils pour traiter la vulnérabilité d'injection de barre oblique dans les politiques templatisées de Vault : une procédure interactive pour expliquer et cadrer le problème, et un script d'audit qui vérifie un cluster en direct et écrit les résultats en Markdown.
vault-cve-2026-5006-walkthrough.html - procédure interactive et autonome du problèmevault-cve-2026-5006-audit.sh - audit de cluster en lecture seule qui génère quatre rapportsUn chemin de politique Vault peut intégrer une valeur d'identité en direct, comme le département d'un utilisateur, via le templating. Vault insère cette valeur dans un segment de chemin lors du rendu de la politique. Rien n'empêche la valeur de contenir une barre oblique, et une barre oblique est un séparateur de chemin. Ainsi, une valeur comme admin/super-secret transforme un segment prévu en deux et accorde un accès que l'auteur de la politique n'a jamais écrit. L'exploitation nécessite que trois éléments se combinent : un attaquant authentifié, une politique templatisée, et le contrôle de la valeur d'identité qui l'alimente (métadonnées d'entité, nom d'alias, métadonnées personnalisées ou métadonnées de groupe).
Le correctif comporte deux volets : mettre à niveau vers une version corrigée, puis définir deny_slash_in_templated_paths = true dans la configuration du serveur et redémarrer. Le drapeau est désactivé par défaut, donc la mise à niveau seule ne comble pas la faille.
| Édition | Concernée | Corrigée dans |
|---|---|---|
| Community | 0.11.0 à 2.0.3 | 2.0.4 |
| Enterprise | 0.11.0 à 2.0.3 | 2.0.4 |
| Enterprise LTS | jusqu'à 1.21.8 / 1.20.13 / 1.19.19 | 1.21.9 / 1.20.14 / 1.19.20 |
vault-cve-2026-5006-walkthrough.html)Un fichier HTML unique et autonome. Ouvrez-le dans n'importe quel navigateur.
deny_slash_in_templated_paths pour que vous puissiez voir le correctif bloquer la règle en temps réel.helm upgrade combinée image-et-drapeau, le cycle ordonné des
pods (les standbys d'abord, l'actif en dernier), et la vérification.Aux équipes plateforme ou sécurité. Commencez par l'onglet attaque pour comprendre le contexte du problème, utilisez l'onglet vérification pour transmettre les commandes, et passez à l'onglet remédiation selon le déploiement qu'ils exécutent.
vault-cve-2026-5006-audit.sh)Parcourt chaque espace de noms accessible et écrit quatre rapports Markdown. Il ne modifie jamais Vault ; chaque appel est une liste ou une lecture.
vault et jq dans votre PATHVAULT_ADDR défini sur l'adresse du clusterVAULT_TOKEN dans l'environnement, soit un
vault login préalable. Sur HCP, un jeton limité à votre espace de noms admin.# HCP Vault Dedicated (l'espace de noms de départ par défaut est "admin")
./vault-cve-2026-5006-audit.sh
# Auto-géré avec un jeton racine : démarrez à la vraie racine
./vault-cve-2026-5006-audit.sh -n ""
# Démarrez depuis une sous-arborescence spécifique et choisissez un répertoire de sortie
./vault-cve-2026-5006-audit.sh -n admin/team-a -o ./team-a-audit
| Drapeau | Signification | Défaut |
|---|---|---|
-n | Espace de noms d'où démarre le parcours | admin |
-o | Répertoire de sortie pour les fichiers Markdown | ./vault-audit |
-h | Affiche l'en-tête d'utilisation et quitte |
Démarrez à admin sur HCP car le véritable espace de noms racine ne vous est pas visible
là-bas. Utilisez -n "" uniquement lorsque vous détenez un jeton racine sur un cluster auto-géré.
| Fichier | Contenu |
|---|---|
policies.md | Politiques templatisées groupées par espace de noms, avec le HCL |
entity-metadata.md | Noms d'entités et métadonnées, un tableau par espace de noms |
alias-and-custom-metadata.md | Noms d'alias et métadonnées personnalisées, par espace de noms |
group-metadata.md | Noms de groupes et métadonnées, par espace de noms |
Chaque fichier s'ouvre avec la référence de l'avis, un horodatage UTC, l'adresse du cluster, l'espace de noms de départ et le nombre d'espaces de noms analysés.
policies.md liste uniquement les politiques dont le chemin est rendu à partir de données d'identité
(une référence {{identity...}}). Ce sont celles qui peuvent être élargies par une
barre oblique.
Les trois rapports d'identité ajoutent une colonne Slash ?. Une ligne est signalée lorsque le
nom ou toute valeur de métadonnées contient un /. Vérifier le nom est important : un alias
nommé admin/injected est une exposition même lorsque ses métadonnées sont propres, car
le nom lui-même peut alimenter un modèle.
Un drapeau marque la surface d'exposition, pas la preuve de compromission. Pour chacun, confirmez qui est autorisé à écrire cette valeur et restructurez la politique là où une barre oblique élargirait la portée.
Vault Enterprise et HCP isolent à la fois les politiques et le magasin d'identité par
espace de noms, donc le script exécute chaque vérification dans chaque espace de noms. vault namespace list ne renvoie que les enfants directs sous forme de chemins partiels, donc le script effectue une récursion et
reconstruit chaque chemin complet en descendant, puis définit VAULT_NAMESPACE pour chaque
appel.
Sur des arborescences d'espaces de noms profondes, cela génère beaucoup d'appels API et peut s'exécuter lentement. Pointez
-n sur une sous-arborescence pour un premier passage rapide avant d'analyser l'ensemble.
deny_slash_in_templated_paths = true et redémarrez chaque serveur. Sur
HCP, il s'agit d'une demande de support, car la configuration du serveur ne vous appartient pas.
Sur auto-géré, vous la définissez vous-même.L'onglet remédiation de la procédure contient les étapes détaillées pour HCP et Kubernetes.
deny_slash_in_templated_paths dans la référence de configuration VaultCes outils sont une aide, pas une déclaration officielle de HashiCorp.