
PoC para CVE-2025-53020 - HPACK bombing no Apache HTTPD.
Uma prova de conceito demonstrando a CVE-2025-53020, uma vulnerabilidade de exaustão de memória na implementação HTTP/2 do Apache httpd que encontrei em meados de 2025.
📖 Análise aprofundada: galbarnahum.com/posts/apache-httpd-cve-2025-53020
O Apache httpd é vulnerável a um ataque de negação de serviço via processamento de cabeçalhos HTTP/2. A vulnerabilidade existe devido à duplicação desnecessária de memória ao lidar com nomes de cabeçalhos repetidos em requisições HTTP/2.
h2 - Biblioteca de protocolo HTTP/2tqdm - Barra de progresso para visualização do ataquepip install h2 tqdm
python poc.py --url https://target.example.com/
| Argumento | Padrão | Descrição |
|---|---|---|
--url | obrigatório | URL alvo (ex.: https://example.com/path) |
--header-name-length | 4064 | Comprimento do nome do cabeçalho (máx: 4064) |
--header-reps | 2063 | Número de repetições do cabeçalho por requisição (máx. recomendado: 2063) |
--requests-per-batch | 1 | Número de requisições por lote |
--batches | 100 | Número de lotes a enviar |
--delay | 0 | Atraso entre lotes em segundos |
--num-headers-to-repeat | 1 | Número de nomes de cabeçalho diferentes a criar (usa caracteres a, b, c, etc.) |
Ataque padrão contra alvo HTTPS:
python poc.py --url https://target.com/api/endpoint
Ataque com configurações de cabeçalho personalizadas:
python poc.py --url http://localhost:8080/test --header-reps 1000 --batches 200
Ataque com múltiplos nomes de cabeçalho distintos:
python poc.py --url https://target.com --num-headers-to-repeat 3 --header-name-length 3000
Ataque mais lento com atraso entre lotes:
python poc.py --url https://target.com --delay 0.5 --batches 500
O PoC inclui um patch para o codificador HPACK da biblioteca h2 para lidar corretamente com valores de cabeçalho vazios. Isto corrige um bug onde o codificador indexa incorretamente cabeçalhos com valores de string vazia (tratando "" como falso em vez de verificar se é None).
--num-headers-to-repeat > 1, o comprimento do nome do cabeçalho deve ser < 4000Versões do Apache httpd vulneráveis à CVE-2025-53020. Consulte os avisos de segurança oficiais da Apache para informações específicas de versões e patches.
⚠️ Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado.
Este projeto é para fins de pesquisa em segurança. Use com responsabilidade e ética.