
Audit- und Schulungs-Toolkit für CVE-2026-5006, eine Slash-Injection-Schwachstelle in Vaults templated policies. Enthält ein schreibgeschütztes Audit-Skript, das Markdown-Berichte erstellt, sowie einen interaktiven Leitfaden zur Behebung.
Zwei Werkzeuge zur Bearbeitung der Vault-Schwachstelle durch Slash-Injection in templated Policies: eine interaktive Schritt-für-Schritt-Anleitung zur Erklärung und Eingrenzung des Problems sowie ein Audit-Skript, das einen laufenden Cluster prüft und die Ergebnisse als Markdown ausgibt.
vault-cve-2026-5006-walkthrough.html – interaktive, eigenständige Schritt-für-Schritt-Anleitung zum Problemvault-cve-2026-5006-audit.sh – schreibgeschützter Cluster-Audit, der vier Berichte erzeugtEin Vault-Policy-Pfad kann über Templating einen Live-Identitätswert wie die Abteilung eines Benutzers einbinden. Vault setzt diesen Wert beim Rendern der Policy in ein Pfadsegment ein. Nichts hindert den Wert daran, einen Slash zu enthalten, und ein Slash ist ein Pfadtrenner. Ein Wert wie admin/super-secret macht aus einem beabsichtigten Segment zwei und gewährt Zugriff, den der Policy-Autor nie vorgesehen hat. Für eine Ausnutzung müssen drei Dinge zusammenkommen: ein authentifizierter Angreifer, eine templated Policy und Kontrolle über den Identitätswert, der sie speist (Entity-Metadaten, ein Alias-Name, benutzerdefinierte Metadaten oder Gruppen-Metadaten).
Der Fix besteht aus zwei Teilen: Upgrade auf einen gepatchten Build und anschließend deny_slash_in_templated_paths = true in der Server-Konfiguration setzen und neu starten. Das Flag ist standardmäßig deaktiviert, daher schließt ein Upgrade allein die Lücke nicht.
| Edition | Betroffen | Behoben in |
|---|---|---|
| Community | 0.11.0 bis 2.0.3 | 2.0.4 |
| Enterprise | 0.11.0 bis 2.0.3 | 2.0.4 |
| Enterprise LTS | bis 1.21.8 / 1.20.13 / 1.19.19 | 1.21.9 / 1.20.14 / 1.19.20 |
vault-cve-2026-5006-walkthrough.html)Eine einzelne eigenständige HTML-Datei. In jedem Browser öffnen.
deny_slash_in_templated_paths,
sodass Sie den Fix in Echtzeit beim Blockieren der Regel sehen können.helm upgrade, das geordnete
Pod-Rotation (zuerst Standbys, zuletzt Active) und die Verifizierung ab.Plattform- oder Sicherheitsteams. Mit dem Angriffs-Tab beginnen, um Kontext zum Problem zu erhalten, den Prüf-Tab verwenden, um die Befehle zu übergeben, und den Behebungs-Tab auf die jeweilige Bereitstellung umstellen.
vault-cve-2026-5006-audit.sh)Durchläuft jeden Namespace, den Sie erreichen können, und schreibt vier Markdown-Berichte. Es verändert Vault nie; jeder Aufruf ist eine Liste oder ein Read.
vault-CLI und jq in Ihrem PATHVAULT_ADDR auf die Cluster-Adresse gesetztVAULT_TOKEN in der Umgebung oder ein vorheriges
vault login. Auf HCP ein Token, das auf Ihren admin-Namespace beschränkt ist.# HCP Vault Dedicated (Standard-Start-Namespace ist "admin")
./vault-cve-2026-5006-audit.sh
# Selbstverwaltet mit Root-Token: an der echten Root starten
./vault-cve-2026-5006-audit.sh -n ""
# Von einem bestimmten Teilbaum starten und ein Ausgabeverzeichnis wählen
./vault-cve-2026-5006-audit.sh -n admin/team-a -o ./team-a-audit
| Flag | Bedeutung | Standard |
|---|---|---|
-n | Namespace, von dem der Durchlauf startet | admin |
-o | Ausgabeverzeichnis für die Markdown-Dateien | ./vault-audit |
-h | Nutzungs-Header ausgeben und beenden |
Auf HCP bei admin starten, da der echte Root-Namespace dort für Sie nicht sichtbar ist.
-n "" nur verwenden, wenn Sie ein Root-Token auf einem selbstverwalteten Cluster besitzen.
| Datei | Inhalt |
|---|---|
policies.md | Templated Policies gruppiert nach Namespace, mit dem HCL |
entity-metadata.md | Entity-Namen und Metadaten, eine Tabelle pro Namespace |
alias-and-custom-metadata.md | Alias-Namen und benutzerdefinierte Metadaten, pro Namespace |
group-metadata.md | Gruppennamen und Metadaten, pro Namespace |
Jede Datei beginnt mit der Advisory-Referenz, einem UTC-Zeitstempel, der Cluster- Adresse, dem Start-Namespace und der Anzahl der gescannten Namespaces.
policies.md listet nur Policies auf, deren Pfad aus Identitätsdaten gerendert wird
(ein {{identity...}}-Verweis). Nur diese können durch einen
Slash erweitert werden.
Die drei Identitätsberichte fügen eine Spalte Slash? hinzu. Eine Zeile wird markiert, wenn der
Name oder ein Metadatenwert ein / enthält. Die Prüfung des Namens ist wichtig: Ein Alias
namens admin/injected ist eine Gefährdung, selbst wenn seine Metadaten sauber sind, weil
der Name selbst eine Vorlage speisen kann.
Ein Flag markiert die Gefährdungsoberfläche, keinen Beweis für eine Kompromittierung. Für jeden Eintrag bestätigen, wer diesen Wert schreiben darf, und die Policy umstrukturieren, wo ein Slash den Geltungsbereich erweitern würde.
Vault Enterprise und HCP isolieren sowohl Policies als auch den Identitätsspeicher pro
Namespace, daher führt das Skript jede Prüfung in jedem Namespace aus. vault namespace list gibt nur direkte Kinder als Teilpfade zurück, daher rekursiert das Skript und
baut jeden vollständigen Pfad beim Abstieg neu auf und setzt dann VAULT_NAMESPACE für jeden
Aufruf.
Bei tiefen Namespace-Bäumen führt dies zu vielen API-Aufrufen und kann langsam laufen. Zeigen Sie
-n auf einen Teilbaum für einen schnellen ersten Durchlauf, bevor Sie alles scannen.
deny_slash_in_templated_paths = true aktivieren und jeden Server neu starten. Auf
HCP ist dies eine Support-Anfrage, da die Server-Konfiguration nicht von Ihnen bearbeitet werden kann.
Bei selbstverwalteten Systemen setzen Sie sie selbst.Der Behebungs-Tab der Schritt-für-Schritt-Anleitung enthält die detaillierten Schritte für HCP und Kubernetes.
deny_slash_in_templated_paths in der Vault-KonfigurationsreferenzDiese Werkzeuge sind eine Hilfe, keine offizielle Stellungnahme von HashiCorp.