
Аудит и образовательный набор инструментов для CVE-2026-5006 — уязвимости внедрения слэша в шаблонных политиках Vault. Включает скрипт аудита только для чтения, формирующий отчёты в Markdown, и интерактивное пошаговое руководство по устранению уязвимости.
Два инструмента для работы с уязвимостью внедрения слэша в шаблонизированных политиках Vault: интерактивное пошаговое руководство для объяснения и оценки проблемы, а также скрипт аудита, который проверяет работающий кластер и записывает результаты в Markdown.
vault-cve-2026-5006-walkthrough.html — интерактивное автономное пошаговое руководство по проблемеvault-cve-2026-5006-audit.sh — аудит кластера только на чтение, который формирует четыре отчётаПуть политики Vault может подтягивать живое значение идентичности, например отдел пользователя, через шаблонизацию. Vault подставляет это значение в один сегмент пути при рендеринге политики. Ничто не мешает значению содержать слэш, а слэш — это разделитель пути, поэтому значение вида admin/super-secret превращает один задуманный сегмент в два и предоставляет доступ, который автор политики никогда не прописывал. Для эксплуатации нужно совпадение трёх условий: аутентифицированный злоумышленник, шаблонизированная политика и контроль над значением идентичности, которое её питает (метаданные сущности, имя алиаса, пользовательские метаданные или метаданные группы).
Исправление состоит из двух частей: обновление до пропатченной сборки, а затем установка deny_slash_in_templated_paths = true в конфигурации сервера и перезапуск. Флаг по умолчанию выключен, поэтому одного обновления недостаточно для закрытия бреши.
| Редакция | Затронутые | Исправлено в |
|---|---|---|
| Community | с 0.11.0 по 2.0.3 | 2.0.4 |
| Enterprise | с 0.11.0 по 2.0.3 | 2.0.4 |
| Enterprise LTS | до 1.21.8 / 1.20.13 / 1.19.19 | 1.21.9 / 1.20.14 / 1.19.20 |
vault-cve-2026-5006-walkthrough.html)Один автономный HTML-файл. Откройте его в любом браузере.
deny_slash_in_templated_paths,
чтобы вы могли в реальном времени увидеть, как исправление блокирует правило.helm upgrade
образа и флага, упорядоченную ротацию подов (сначала резервные, активный последним) и проверку.Для платформенных команд или команд безопасности. Начните с вкладки атаки, чтобы получить контекст проблемы, используйте вкладку проверки для передачи команд и переключите вкладку устранения на тот тип развёртывания, который используется у вас.
vault-cve-2026-5006-audit.sh)Проходит по каждому пространству имён, к которому у вас есть доступ, и формирует четыре отчёта в Markdown. Он никогда не изменяет Vault; каждый вызов — это список или чтение.
vault и jq в вашем PATHVAULT_ADDR, указывающий на адрес кластераVAULT_TOKEN в окружении, либо предварительный
vault login. На HCP — токен, ограниченный вашим пространством имён admin.# HCP Vault Dedicated (пространство имён по умолчанию для старта — "admin")
./vault-cve-2026-5006-audit.sh
# Самостоятельное управление с root-токеном: старт с истинного корня
./vault-cve-2026-5006-audit.sh -n ""
# Старт с конкретного поддерева и выбор каталога вывода
./vault-cve-2026-5006-audit.sh -n admin/team-a -o ./team-a-audit
| Флаг | Значение | По умолчанию |
|---|---|---|
-n | Пространство имён, с которого начинается обход | admin |
-o | Каталог вывода для файлов Markdown | ./vault-audit |
-h | Вывести заголовок использования и выйти |
Начинайте с admin на HCP, потому что истинное корневое пространство имён там вам не видно.
Используйте -n "" только при наличии root-токена на кластере с самостоятельным управлением.
| Файл | Содержимое |
|---|---|
policies.md | Шаблонизированные политики, сгруппированные по пространствам имён, с HCL |
entity-metadata.md | Имена сущностей и метаданные, по одной таблице на пространство имён |
alias-and-custom-metadata.md | Имена алиасов и пользовательские метаданные, по пространству имён |
group-metadata.md | Имена групп и метаданные, по пространству имён |
Каждый файл открывается со ссылки на рекомендацию, метки времени UTC, адреса кластера, стартового пространства имён и количества просканированных пространств имён.
policies.md перечисляет только те политики, путь которых формируется из данных идентичности
(ссылка {{identity...}}). Именно они могут быть расширены с помощью
слэша.
Три отчёта об идентичности добавляют столбец Slash?. Строка помечается, когда
имя или любое значение метаданных содержит /. Проверка имени важна: алиас
с именем admin/injected — это угроза, даже если его метаданные чистые, потому что
само имя может питать шаблон.
Флаг указывает на поверхность угрозы, а не на доказательство компрометации. Для каждого случая подтвердите, кому разрешено записывать это значение, и перестройте политику там, где слэш расширил бы область действия.
Vault Enterprise и HCP изолируют и политики, и хранилище идентичности по каждому
пространству имён, поэтому скрипт выполняет каждую проверку в каждом пространстве имён. vault namespace list возвращает только прямых потомков в виде частичных путей, поэтому скрипт рекурсивно
обходит и пересобирает каждый полный путь по мере спуска, а затем устанавливает VAULT_NAMESPACE для каждого
вызова.
На глубоких деревьях пространств имён это создаёт много API-вызовов и может работать медленно. Направьте
-n на поддерево для быстрого первого прохода перед сканированием всего.
deny_slash_in_templated_paths = true и перезапустите каждый сервер. На
HCP это запрос в поддержку, поскольку конфигурация сервера не принадлежит вам для редактирования.
При самостоятельном управлении вы устанавливаете его сами.Во вкладке устранения руководства есть пошаговые инструкции как для HCP, так и для Kubernetes.
deny_slash_in_templated_paths в справочнике по конфигурации VaultЭти инструменты — вспомогательное средство, а не официальное заявление HashiCorp.