
Kit de auditoria e educacional para CVE-2026-5006, uma vulnerabilidade de injeção por barra em política modelada do Vault. Inclui um script de auditoria somente leitura que gera relatórios em Markdown e um passo a passo interativo para remediação.
Duas ferramentas para trabalhar a vulnerabilidade de injeção de barra em políticas modeladas do Vault: um passo a passo interativo para explicar e dimensionar o problema, e um script de auditoria que verifica um cluster ativo e grava os resultados em Markdown.
vault-cve-2026-5006-walkthrough.html - passo a passo interativo e autossuficiente do problemavault-cve-2026-5006-audit.sh - auditoria de cluster somente leitura que gera quatro relatóriosUm caminho de política do Vault pode incorporar um valor de identidade dinâmico, como o departamento de um usuário, por meio de modelagem. O Vault preenche esse valor em um segmento de caminho ao renderizar a política. Nada impede que o valor contenha uma barra, e uma barra é um separador de caminho, então um valor como admin/super-secret transforma um segmento pretendido em dois e concede acesso que o autor da política nunca escreveu. Explorá-la exige que três coisas se alinhem: um atacante autenticado, uma política modelada e controle sobre o valor de identidade que a alimenta (metadados de entidade, nome de alias, metadados personalizados ou metadados de grupo).
A correção tem duas metades: atualizar para uma versão corrigida e, em seguida, definir deny_slash_in_templated_paths = true na configuração do servidor e reiniciar. A flag fica desativada por padrão, então apenas atualizar não fecha a lacuna.
| Edição | Afetadas | Corrigida em |
|---|---|---|
| Community | 0.11.0 até 2.0.3 | 2.0.4 |
| Enterprise | 0.11.0 até 2.0.3 | 2.0.4 |
| Enterprise LTS | até 1.21.8 / 1.20.13 / 1.19.19 | 1.21.9 / 1.20.14 / 1.19.20 |
vault-cve-2026-5006-walkthrough.html)Um único arquivo HTML autossuficiente. Abra-o em qualquer navegador.
deny_slash_in_templated_paths
para que você veja a correção bloqueando a regra em tempo real.helm upgrade combinado de imagem e flag, o ciclo ordenado
de pods (standbys primeiro, ativo por último) e a verificação.Equipes de plataforma ou segurança. Comece pela aba de ataque para obter contexto do problema, use a aba de verificação para repassar os comandos e alterne a aba de correção para a implantação que executam.
vault-cve-2026-5006-audit.sh)Percorre todos os namespaces que você pode alcançar e grava quatro relatórios Markdown. Ele nunca modifica o Vault; toda chamada é uma listagem ou uma leitura.
vault e jq no seu PATHVAULT_ADDR definido para o endereço do clusterVAULT_TOKEN no ambiente ou um
vault login prévio. No HCP, um token com escopo para seu namespace admin.# HCP Vault Dedicated (namespace inicial padrão é "admin")
./vault-cve-2026-5006-audit.sh
# Autogerenciado com token raiz: comece na raiz verdadeira
./vault-cve-2026-5006-audit.sh -n ""
# Comece de uma subárvore específica e escolha um diretório de saída
./vault-cve-2026-5006-audit.sh -n admin/team-a -o ./team-a-audit
| Flag | Significado | Padrão |
|---|---|---|
-n | Namespace de onde a varredura começa | admin |
-o | Diretório de saída para os arquivos Markdown | ./vault-audit |
-h | Exibe o cabeçalho de uso e sai |
Comece em admin no HCP porque o namespace raiz verdadeiro não é visível para você
lá. Use -n "" somente quando tiver um token raiz em um cluster autogerenciado.
| Arquivo | Conteúdo |
|---|---|
policies.md | Políticas modeladas agrupadas por namespace, com o HCL |
entity-metadata.md | Nomes e metadados de entidades, uma tabela por namespace |
alias-and-custom-metadata.md | Nomes de alias e metadados personalizados, por namespace |
group-metadata.md | Nomes e metadados de grupos, por namespace |
Cada arquivo abre com a referência do aviso, um carimbo de data/hora UTC, o endereço do cluster, o namespace inicial e o número de namespaces verificados.
policies.md lista apenas políticas cujo caminho é renderizado a partir de dados de identidade
(uma referência {{identity...}}). Essas são as que podem ser ampliadas por uma
barra.
Os três relatórios de identidade adicionam uma coluna Barra?. Uma linha é sinalizada quando o
nome ou qualquer valor de metadados contém uma /. Verificar o nome importa: um alias
chamado admin/injected é uma exposição mesmo quando seus metadados estão limpos, porque
o próprio nome pode alimentar um modelo.
Uma flag marca a superfície de exposição, não a prova de comprometimento. Para cada uma, confirme quem tem permissão para escrever esse valor e reestruture a política onde uma barra ampliaria o escopo.
O Vault Enterprise e o HCP isolam tanto as políticas quanto o armazenamento de identidade por
namespace, então o script executa cada verificação em cada namespace. vault namespace list retorna apenas filhos diretos como caminhos parciais, então o script faz recursão e
reconstrói cada caminho completo ao descer, e então define VAULT_NAMESPACE para cada
chamada.
Em árvores de namespace profundas, isso gera muitas chamadas de API e pode ser lento. Aponte
-n para uma subárvore para uma primeira passagem rápida antes de verificar tudo.
deny_slash_in_templated_paths = true e reinicie cada servidor. No
HCP, isso é uma solicitação de suporte, pois a configuração do servidor não é sua para editar.
No autogerenciado, você define isso você mesmo.A aba de correção do passo a passo tem o passo a passo detalhado tanto para HCP quanto para Kubernetes.
deny_slash_in_templated_paths na referência de configuração do VaultEstas ferramentas são um auxílio, não uma declaração oficial da HashiCorp.