From bc96ae2d736e063932d04af798a1b6200c76002b Mon Sep 17 00:00:00 2001 From: mateusm1403 <110349909+mateusm1403@users.noreply.github.com> Date: Thu, 21 Aug 2025 18:24:52 -0300 Subject: [PATCH] Update README.md --- README.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/README.md b/README.md index 16d8c34..3426f50 100644 --- a/README.md +++ b/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. + + +