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 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