
CVE-2026-49975
Ferramenta de reprodução da vulnerabilidade de negação de serviço remota HTTP/2
CVE-2026-49975 é uma vulnerabilidade de negação de serviço HTTP/2 que afeta servidores web populares. A vulnerabilidade foi descoberta pela empresa de segurança Calif (usando OpenAI Codex) no início de junho de 2026.
Bomba de compressão HPACK: insere um cabeçalho muito pequeno (como "x: a") na tabela dinâmica HPACK do servidor e, em seguida, envia milhares de referências de índice de 1 byte. Cada referência força o servidor a alocar uma quantidade significativa de memória de contabilidade, enquanto o cliente consome largura de banda mínima. A taxa de amplificação de memória pode chegar a ~5700:1 (Envoy) e ~4000:1 (Apache httpd).
Manutenção do fluxo Slowloris: impede que o servidor envie respostas por meio de uma janela de fluxo de zero bytes e envia quadros WINDOW_UPDATE em gotas para manter a conexão ativa, "fixando" a alocação de memória.
Bypass de fragmentação de Cookie: divide um Cookie grande em muitos fragmentos pequenos, contornando o limite de cabeçalhos do servidor.
| Software | Versões afetadas | Versões corrigidas |
|---|---|---|
| Apache httpd (mod_http2) | < 2.0.41 | 2.0.41+ |
| nginx | < 1.29.8 | 1.29.8+ |
| OpenResty | baseado em nginx < 1.29.8 | 1.29.8+ |
| Envoy (CVE-2026-47774) | ≤ 1.37.2 | 1.35.11, 1.36.7, 1.37.3, 1.38.1+ |
| Microsoft IIS | Windows Server 2025 | Sem patch |
| Cloudflare Pingora | configuração padrão | Sem patch |
Esta ferramenta é usada para pesquisa de segurança e testes autorizados, demonstrando o mecanismo de ataque da vulnerabilidade CVE-2026-49975.
pip install -r requirements.txt
# Ataque básico
python http2_bomb.py example.com
# Teste local sem TLS
python http2_bomb.py localhost -p 8080 --no-tls
# Ataque de alta intensidade (50 streams, 50000 referências por stream)
python http2_bomb.py example.com -s 50 -n 50000
# Ativar bypass de fragmentação de Cookie
python http2_bomb.py example.com --cookie-fragments 1000
# Modo rápido (não mantém a conexão após o envio)
python http2_bomb.py example.com --no-hold
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
target | Endereço do host alvo | Obrigatório |
-p, --port | Porta do alvo | 443 |
--no-tls | Desabilita TLS | false |
-s, --streams | Número de streams concorrentes | 10 |
-n, --headers-per-stream | Número de referências de cabeçalho por stream | 10000 |
--cookie-fragments | Número de fragmentos de Cookie | 0 |
--stream-delay | Atraso entre envio de streams (segundos) | 0.01 |
--window-update-interval | Intervalo de envio de WINDOW_UPDATE | 5.0s |
--no-hold | Não manter conexão após o envio | false |
--timeout | Tempo limite do socket | 30 |
Use test_server.py para iniciar um servidor HTTP/2 simples para validação local:
# Gerar certificado autoassinado
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes
# Iniciar servidor de teste
python test_server.py --port 8443
# Executar ataque
python http2_bomb.py localhost -p 8443
Mitigação imediata: Se não for possível aplicar o patch imediatamente, desative temporariamente HTTP/2
Protocols http/1.1http2 off;Atualizar patches:
Reforço de configuração:
max_headers (nginx 1.29.8+ padrão 1000)Monitoramento e alertas:
⚠️ Esta ferramenta é destinada exclusivamente para pesquisa de segurança e testes de penetração autorizados.
O uso não autorizado desta ferramenta contra sistemas de terceiros é ilegal. Os utilizadores devem cumprir as leis e regulamentos locais e testar apenas alvos para os quais possuam autorização legal.
Licença MIT - para fins de pesquisa de segurança e educação.