
PoC de pesquisa de segurança para CVE-2026-49975: bomba de compressão HTTP/2 HPACK + DoS por retenção de controle de fluxo no Apache mod_http2
PoC de Pesquisa de Segurança por naheeju
⚠️ Esta é uma ferramenta funcional de DoS por esgotamento de memória — não é um brinquedo. Ela abre fluxos que forçam o alvo a alocar memória e os mantém abertos por meio de truques de controle de fluxo do HTTP/2. Enquanto o processo estiver em execução, ele continua retendo e se reconecta automaticamente se o servidor derrubar a conexão — não para por conta própria. O impacto escala diretamente com
--threads,--streamse--headers. Interromper o processo (Ctrl+C) libera os fluxos retidos e permite que o servidor se recupere, mas nada na operação padrão é "gentil" — trate cada execução como um teste real.
CVE-2026-49975 ("HTTP/2 Bomb") é uma vulnerabilidade de Negação de Serviço remota e não autenticada que afeta o módulo mod_http2 do Apache HTTP Server. Ela encadeia duas fraquezas do HTTP/2 conhecidas há muito tempo:
Cookie sejam mesclados sem serem contabilizados em LimitRequestFields, forçando o servidor a alocar memória repetidamente para estruturas internas de contabilidade de cabeçalhos.O resultado: um único cliente em uma conexão modesta pode forçar alocação de memória significativa e sustentada no alvo enquanto o fluxo permanecer aberto. Esta implementação suporta dois modos de payload e escala linearmente com a concorrência que você configurar:
nginx — planta um cabeçalho x-bomb vazio na tabela dinâmica HPACK e o referencia repetidamente (~70:1 de amplificação por referência).classic — planta um cabeçalho cookie superdimensionado em vez disso (~4000:1 de amplificação por referência).Cada conexão referencia novamente o cabeçalho plantado milhares de vezes por fluxo (--headers, padrão 5000), através de múltiplos fluxos por conexão (--streams, padrão 10) e múltiplas conexões paralelas (--threads, padrão 1). Se o servidor fechar uma conexão, a ferramenta se reconecta imediatamente e continua até ser interrompida manualmente — este é um loop de retenção contínua, não uma sonda única.
Identificadores relacionados para outras stacks afetadas (não implementados ou testados por este repositório):
CVE-2026-47774Escopo completo da classe de fraqueza subjacente, para fins de completude — a técnica "HTTP/2 Bomb" (bomba de compressão HPACK + retenção de controle de fluxo) afeta várias implementações de servidor além do Apache. Este repositório implementa e testa apenas o caso do Apache; o restante está incluído para que os leitores entendam a classe mais ampla, não porque este PoC os exercite:
| Implementação | Status | Implementado neste PoC? |
|---|---|---|
Apache HTTP Server mod_http2 | Corrigido no httpd 2.4.68 (2026-06-08) | Sim — este repositório |
| nginx | Corrigido no 1.29.8 | Não |
| Envoy | Rastreado separadamente | Não |
| Microsoft IIS | Rastreado separadamente | Não |
| Cloudflare Pingora | Rastreado separadamente | Não |
| CVE | CVE-2026-49975 |
| CWE | CWE-789 (Alocação de Memória com Valor de Tamanho Excessivo, conforme NVD/CVE.org); também rastreado como CWE-409 (Tratamento Inadequado de Dados Altamente Comprimidos) por alguns fornecedores |
| CVSS | 7.5 (Alto) — CVSS v3.1, vetor apenas de disponibilidade (conforme NVD). O próprio aviso da Apache o classifica como Moderado. |
| Componente afetado | Apache HTTP Server mod_http2 |
| Versões vulneráveis | Apache httpd 2.4.17 ≤ versão ≤ 2.4.67 (configuração HTTP/2 padrão) |
| Corrigido em | Apache HTTP Server 2.4.68 (lançado em 2026-06-08). A correção subjacente chegou ao upstream no mod_h2 em 2026-05-27, foi mesclada no branch 2.4.x do httpd em 2026-06-02 e foi incluída no lançamento 2.4.68. |
| Tipo de ataque | Negação de Serviço — esgotamento de memória (apenas disponibilidade) |
| Autenticação necessária | Não |
| Exposição de dados / RCE | Nenhuma — isto tem impacto apenas na disponibilidade |
| Explorado conhecidamente | Atualmente não sinalizado como conhecidamente explorado em ambiente real por fontes rastreadas. |
Referências (fontes primárias — verifique todas as afirmações de forma independente):
Este repositório contém:
Este repositório não contém:
Leia isto antes de fazer qualquer outra coisa.