
Prueba de concepto de investigación de seguridad para CVE-2026-49975: bomba de compresión HPACK de HTTP/2 + DoS por retención de control de flujo en Apache mod_http2
PoC de investigación de seguridad por naheeju
⚠️ Esta es una herramienta funcional de DoS por agotamiento de memoria — no es un juguete. Abre flujos que fuerzan al objetivo a asignar memoria y los mantiene abiertos mediante trucos de control de flujo de HTTP/2. Mientras el proceso esté en ejecución, sigue reteniendo y se reconecta automáticamente si el servidor cierra la conexión — no se detiene por sí solo. El impacto escala directamente con
--threads,--streamsy--headers. Detener el proceso (Ctrl+C) libera los flujos retenidos y permite que el servidor se recupere, pero nada en el funcionamiento por defecto es "suave" — trata cada ejecución como una prueba con fuego real.
CVE-2026-49975 ("HTTP/2 Bomb") es una vulnerabilidad de denegación de servicio remota y no autenticada que afecta al módulo mod_http2 del servidor Apache HTTP. Encadena dos debilidades de HTTP/2 conocidas desde hace tiempo:
Cookie se fusionen sin contabilizarse contra LimitRequestFields, forzando al servidor a asignar memoria repetidamente para estructuras internas de contabilidad de cabeceras.El resultado: un único cliente en una conexión modesta puede forzar una asignación de memoria significativa y sostenida en el objetivo durante todo el tiempo que se mantenga abierto el flujo. Esta implementación soporta dos modos de payload y escala linealmente con la concurrencia que configures:
nginx — planta una cabecera x-bomb vacía en la tabla dinámica HPACK y la referencia repetidamente (~70:1 de amplificación por referencia).classic — planta en su lugar una cabecera cookie sobredimensionada (~4000:1 de amplificación por referencia).Cada conexión vuelve a referenciar la cabecera plantada miles de veces por flujo (--headers, por defecto 5000), a través de múltiples flujos por conexión (--streams, por defecto 10) y múltiples conexiones paralelas (--threads, por defecto 1). Si el servidor cierra una conexión, la herramienta se reconecta inmediatamente y continúa hasta que se detenga manualmente — este es un bucle de retención continua, no una sonda única de un solo disparo.
Identificadores relacionados para otras pilas afectadas (no implementadas ni probadas por este repositorio):
CVE-2026-47774Alcance completo de la clase de debilidad subyacente, para completitud — la técnica "HTTP/2 Bomb" (bomba de compresión HPACK + retención de control de flujo) afecta a varias implementaciones de servidor más allá de Apache. Este repositorio solo implementa y prueba el caso de Apache; el resto se incluye para que los lectores entiendan la clase más amplia, no porque este PoC las ejercite:
| Implementación | Estado | ¿Implementada en este PoC? |
|---|---|---|
Apache HTTP Server mod_http2 | Corregido en httpd 2.4.68 (2026-06-08) | Sí — este repositorio |
| nginx | Corregido en 1.29.8 | No |
| Envoy | Rastreado por separado | No |
| Microsoft IIS | Rastreado por separado | No |
| Cloudflare Pingora | Rastreado por separado | No |
| CVE | CVE-2026-49975 |
| CWE | CWE-789 (Memory Allocation with Excessive Size Value, según NVD/CVE.org); también rastreado como CWE-409 (Improper Handling of Highly Compressed Data) por algunos proveedores |
| CVSS | 7.5 (Alto) — CVSS v3.1, vector solo de disponibilidad (según NVD). El propio aviso de Apache lo califica como Moderado. |
| Componente afectado | Apache HTTP Server mod_http2 |
| Versiones vulnerables | Apache httpd 2.4.17 ≤ versión ≤ 2.4.67 (configuración HTTP/2 por defecto) |
| Corregido en | Apache HTTP Server 2.4.68 (publicado el 2026-06-08). La corrección subyacente llegó a upstream en mod_h2 el 2026-05-27, se fusionó en la rama 2.4.x de httpd el 2026-06-02 y se distribuyó en la versión 2.4.68. |
| Tipo de ataque | Denegación de servicio — agotamiento de memoria (solo disponibilidad) |
| Requiere autenticación | No |
| Exposición de datos / RCE | Ninguna — esto solo impacta la disponibilidad |
| Explotación conocida | Actualmente no marcado como explotado en la naturaleza por fuentes rastreadas. |
Referencias (fuentes primarias — verifica todas las afirmaciones de forma independiente):
Este repositorio contiene:
Este repositorio no contiene:
Lee esto antes de hacer cualquier otra cosa.