Update README.md
This commit is contained in:
88
README.md
88
README.md
@@ -1,2 +1,90 @@
|
|||||||
# PoC-CVE-2025-8671-MadeYouReset-HTTP-2
|
# PoC-CVE-2025-8671-MadeYouReset-HTTP-2
|
||||||
PoC para validar vulnerabilidade MadeYouReset
|
PoC para validar vulnerabilidade MadeYouReset
|
||||||
|
|
||||||
|
Este repositório contém uma PoC controlada desenvolvida para validar se uma infraestrutura é potencialmente vulnerável à CVE-2025-8671 (MadeYouReset).
|
||||||
|
O código não é um exploit completo e não realiza DoS real – o objetivo é somente simular os vetores descritos publicamente e observar as respostas do servidor.
|
||||||
|
|
||||||
|
Sobre a CVE-2025-8671
|
||||||
|
A CVE-2025-8671 afeta implementações HTTP/2 em que o servidor não lida corretamente com certos frames inválidos enviados após o encerramento de streams ou conexões.
|
||||||
|
Um atacante poderia explorar a falha para causar consumo excessivo de CPU/memória, resultando em negação de serviço (DoS).
|
||||||
|
|
||||||
|
Os vetores mais comuns descritos publicamente incluem:
|
||||||
|
|
||||||
|
* WINDOW\_UPDATE inválido (em stream inexistente ou conexão com janela zero)
|
||||||
|
* DATA enviado após END\_STREAM
|
||||||
|
* HEADERS de tamanho zero após o encerramento do stream
|
||||||
|
* PRIORITY com tamanho inválido após encerramento
|
||||||
|
* CONTINUATION sem HEADERS prévios
|
||||||
|
|
||||||
|
O que o código faz
|
||||||
|
O script:
|
||||||
|
|
||||||
|
1. Estabelece conexão HTTP/2 com o alvo informado.
|
||||||
|
|
||||||
|
2. Executa requisições para os vetores conhecidos (listados acima).
|
||||||
|
|
||||||
|
3. Monitora a resposta do servidor, registrando eventos como:
|
||||||
|
|
||||||
|
* GOAWAY (encerramento da conexão pelo servidor)
|
||||||
|
* RST\_STREAM (reset adequado do stream inválido)
|
||||||
|
* Fechamento antecipado da conexão
|
||||||
|
* Respostas recebidas (quando o servidor processa a request)
|
||||||
|
* Erros internos
|
||||||
|
|
||||||
|
4. Para cada tentativa, gera uma saída em JSON com:
|
||||||
|
|
||||||
|
* vector → vetor de ataque testado
|
||||||
|
* attempt → número da tentativa
|
||||||
|
* rst\_stream → se o servidor resetou o stream
|
||||||
|
* goaway → se o servidor encerrou a conexão
|
||||||
|
* responses → se houve resposta do servidor
|
||||||
|
* conn\_closed\_early → se a conexão foi encerrada antes do esperado
|
||||||
|
* error → mensagem de erro capturada localmente
|
||||||
|
|
||||||
|
Limitações
|
||||||
|
|
||||||
|
* O script não é um exploit de DoS real. Ele envia apenas algumas dezenas de frames por vetor para detecção controlada.
|
||||||
|
* O código não mede exaustão de CPU/memória do servidor diretamente; a análise depende de:
|
||||||
|
|
||||||
|
* Logs do lado do servidor, CDN ou backend
|
||||||
|
* Métricas de tempo de resposta, bytes enviados e status codes
|
||||||
|
* Não cobre todos os cenários possíveis de exploração, apenas os vetores já descritos publicamente.
|
||||||
|
* É uma ferramenta de validação defensiva, não de ataque.
|
||||||
|
|
||||||
|
Como usar
|
||||||
|
|
||||||
|
Requisitos
|
||||||
|
|
||||||
|
* Python 3.10 ou superior
|
||||||
|
* Dependências:
|
||||||
|
pip install h2 hyperframe
|
||||||
|
|
||||||
|
Execução
|
||||||
|
|
||||||
|
|
||||||
|
python3 poc_cve.py
|
||||||
|
|
||||||
|
Interpretação dos Resultados
|
||||||
|
|
||||||
|
GOAWAY = 1 → o servidor encerrou corretamente a conexão.
|
||||||
|
RST_STREAM = 1 → o servidor resetou corretamente o stream inválido.
|
||||||
|
responses > 0 → o servidor processou a request (aceitável em paths válidos, desde que encerre depois).
|
||||||
|
conn_closed_early = 1 → o servidor fechou a conexão de forma imediata (normal em alguns vetores).
|
||||||
|
error → indica erro local do cliente (não necessariamente problema do servidor).
|
||||||
|
|
||||||
|
Infraestruturas não vulneráveis costumam:
|
||||||
|
|
||||||
|
Encerrar a conexão (GOAWAY) ou resetar streams inválidos (RST_STREAM)
|
||||||
|
|
||||||
|
Não manter processamento ativo após os frames inválidos
|
||||||
|
|
||||||
|
Não apresentar lentidão ou consumo anômalo nos logs
|
||||||
|
|
||||||
|
Conclusão
|
||||||
|
|
||||||
|
Este código permite validar, de forma segura e não intrusiva, se uma infraestrutura HTTP/2 reage adequadamente aos vetores associados à CVE-2025-8671.
|
||||||
|
|
||||||
|
Ele cumpre seu propósito de PoC defensiva: detectar comportamentos incorretos sem gerar DoS real ou explorar a falha em produção.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user