
Detector no destructivo de vulnerabilidades HTTP/2 Bomb (CVE-2026-49975) para Nginx / Apache httpd. Python sin dependencias.
Bomba HTTP/2 (CVE-2026-49975) herramienta de detección de vulnerabilidades no destructiva — para Nginx / Apache httpd
CVE-2026-49975 es una vulnerabilidad de denegación de servicio remota a nivel de protocolo HTTP/2 de gran impacto, descubierta por el investigador de seguridad Quang Luong. La vulnerabilidad explota un defecto de diseño combinado entre la compresión de cabeceras HPACK y el mecanismo de control de flujo. Un atacante puede agotar 32 GB de memoria del servidor en 10-20 segundos sin necesidad de autenticación.
| Servidor | Versiones afectadas | Factor de amplificación | Estado de corrección |
|---|---|---|---|
| Apache httpd | 2.4.17 – 2.4.67 (mod_http2 < 2.0.41) | ~4,000:1 | ✅ Corregido |
| Nginx | < 1.29.8 | ~70:1 | ✅ Corregido |
| Envoy | ≤ 1.37.2 | ~5,700:1 | ❌ Sin corregir |
| Microsoft IIS | incluye Windows Server 2025 | ~68:1 | ❌ Sin corregir |
| Cloudflare Pingora | ≤ 0.8.0 | ~62:1 | ❌ Sin corregir |
Esta herramienta se basa en el PoC real e implementa dos modos de detección:
Detecta la bomba de referencias de índices HPACK: inserta la entrada dinámica ("a", "") y luego envía referencias de índice. Cada referencia de 1 byte en línea → 59 bytes de memoria del servidor (copia de pool de 3B + ngx_table_elt_t de 56B). El parámetro de ataque es refs=32000; la detección solo utiliza refs=3.
Detecta la bomba de fusión de migas de cookie: aprovecha el mecanismo de fusión de cookies de mod_http2 (apr_table_setn concatena cookies duplicadas con "; "). Las cookies fusionadas no se contabilizan en LimitRequestFields. El parámetro de ataque es refs=4091 (amplificación de ~4000:1); la detección solo utiliza refs=3.
ENHANCE_YOUR_CALM → 🛡️ Protección implementadaRST_STREAM → 🛡️ ProtegidoGOAWAY → 🛡️ ProtegidoCero dependencias, solo utiliza la biblioteca estándar de Python (ssl, socket, struct).
git clone https://github.com/adminlove520/http2-bomb-detector.git
cd http2-bomb-detector
Requiere Python 3.7+.
# Detección automática (modos Nginx + Apache)
python http2_bomb_detector.py --host example.com
# Especificar modo
python http2_bomb_detector.py --host example.com --mode nginx
python http2_bomb_detector.py --host example.com --mode httpd
# Especificar puerto
python http2_bomb_detector.py --host example.com --port 8443
# Solo información de vulnerabilidad, sin enviar paquetes de sondeo
python http2_bomb_detector.py --host example.com --no-probe
# Salida en formato JSON
python http2_bomb_detector.py --host example.com --json
# Leer lista de objetivos desde un archivo
python http2_bomb_detector.py -f targets.txt
# Generar informe
python http2_bomb_detector.py -f targets.txt -o report.txt
Formato de targets.txt (una por línea, las líneas que comienzan con # son comentarios):
# Lista de servidores web
example.com
https://example.org:8443
192.168.1.100
[INFO] Conectando a example.com:443 ...
[OK] Conexión HTTP/2 establecida
[INFO] --- MODO NGINX ---
[INFO] Vector de ataque: bomba de referencias de índices HPACK: entrada dinámica ('a','') × 32000 referencias
[INFO] Versión corregida: 1.29.8 | Factor de amplificación: ~70:1
[INFO] Enviando paquete de sondeo (refs=3, no destructivo)...
[WARN] ⚠️ El servidor aceptó silenciosamente el paquete de sondeo — ¡posiblemente vulnerable!
[INFO] --- MODO HTTPD ---
[INFO] Vector de ataque: bomba de fusión de migas de cookie: cookie vacía × 4091 referencias
[INFO] Versión corregida: mod_http2 2.0.41 / httpd 2.4.68 | Factor de amplificación: ~4000:1
[INFO] Enviando paquete de sondeo (refs=3, no destructivo)...
[OK] El servidor rechazó el flujo de sondeo con RST_STREAM — protegido
==================================================
🛡️ NGINX: potentially_vulnerable
⚠️ HTTPD: protected
Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas. El uso de esta herramienta contra objetivos no autorizados puede violar la ley. El usuario asume toda la responsabilidad legal.
MIT