CVE-2025-8671: Vulnerabilidade “MadeYouReset” no HTTP/2

Hacker encapuzado diante de servidor iluminado em azul, destacando vulnerabilidade crítica CVE-2025-8671 HTTP/2
🕒 Leitura: 📂 Categoria: Cve
Ouvir:
ACESSIBILIDADE:
Neste Artigo

Em 13 de agosto de 2025, pesquisadores de segurança revelaram publicamente uma nova vulnerabilidade crítica no protocolo HTTP/2, apelidada de MadeYouReset e catalogada como CVE-2025-8671. Essa falha permite que invasores realizem ataques DDoS (Distributed Denial of Service) altamente eficientes, afetando milhões de servidores web no mundo todo.

A gravidade da falha já é comparada e até considerada superior ao ataque “Rapid Reset” de 2023, que também explorava fraquezas do protocolo HTTP/2 para sobrecarregar servidores.

Visão Geral da Vulnerabilidade

O MadeYouReset permite que atacantes contornem os limites de concorrência embutidos no protocolo HTTP/2, enganando os servidores para que eles mesmos cancelem as conexões, criando uma carga de trabalho imensa sem utilizar muita largura de banda ou poder de processamento do lado do atacante.

Essa abordagem torna os ataques altamente assimétricos, ou seja, um pequeno número de pacotes enviados por um invasor pode gerar uma carga enorme de processamento no servidor-alvo.

Entendendo o Ataque

Background: o que é MAX_CONCURRENT_STREAMS?

No protocolo HTTP/2, existe um controle chamado MAX_CONCURRENT_STREAMS, geralmente configurado para 100, que limita quantas streams ativas um cliente pode abrir ao mesmo tempo. Essa proteção visa evitar que um cliente abra milhares de conexões simultâneas e sobrecarregue o servidor.

O que foi o ataque Rapid Reset?

Em 2023, o ataque chamado Rapid Reset consistia em:

  • Enviar uma requisição HTTP/2 válida (por exemplo, GET /recurso)

  • Cancelar imediatamente essa requisição com um frame RST_STREAM

  • O servidor continuava processando a requisição mesmo após o cancelamento

  • Como a requisição cancelada não contava mais no limite de concorrência, o atacante podia repetir o processo indefinidamente

Como o MadeYouReset é diferente?

O MadeYouReset é ainda mais engenhoso. Em vez do cliente cancelar a conexão, o atacante força o próprio servidor a cancelar as streams com frames RST_STREAM mas sem encerrar o processamento no backend.

Resultado:

  • O servidor cancela o stream “no papel” (não conta no MAX_CONCURRENT_STREAMS)

  • Mas continua processando a requisição em segundo plano

  • O cliente pode repetir isso centenas ou milhares de vezes

  • O servidor atinge esgotamento de memória (OOM) ou travamento

Técnicas Descobertas

Os pesquisadores identificaram seis técnicas diferentes que forçam o servidor a emitir RST_STREAM frames automaticamente, enquanto a requisição ainda é mantida ativa no backend. Ou seja, o servidor está enganado, achando que liberou recursos, mas está internamente sobrecarregado.

Quase todas as implementações compatíveis com HTTP/2 são vulneráveis. Isso inclui:

Projeto/SoftwareCVE Relacionado
HTTP/2 genéricoCVE-2025-8671
Netty (Java)CVE-2025-55163
Apache TomcatCVE-2025-48989
F5 BIG-IPCVE-2025-54500
H2OCVE-2025-8671
Swift-NIO-HTTP2Em avaliação

Consequências Possíveis

  • Trava total do servidor (Denial of Service)

  • Esgotamento de memória RAM

  • Fila de requisições no backend saturada

  • Pane em serviços críticos com impacto real em aplicações e APIs

Segundo os pesquisadores, mesmo um atacante com conexão limitada pode causar danos graves, dada a natureza assimétrica do ataque.

Simulando o Ataque em um Ambiente com HTTP/2 — Caso netcattest.com

Para entender na prática o impacto do CVE-2025-8671, imaginemos o servidor fictício https://netcattest.com, hospedado em uma VPS com Apache 2.4.x, com suporte ao protocolo HTTP/2 (mod_http2) ativado, utilizando conexões TLS (via mod_ssl).

Configuração Padrão do Apache com HTTP/2

Em um ambiente típico com suporte a HTTP/2, a configuração mínima seria:

Protocols h2 http/1.1

<VirtualHost *:443>
    ServerName netcattest.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/netcat.crt
    SSLCertificateKeyFile /etc/ssl/private/netcat.key

    Protocols h2 http/1.1
    H2MaxSessionStreams 100
    DocumentRoot /var/www/netcattest.com/public_html
</VirtualHost>

O parâmetro H2MaxSessionStreams 100 corresponde ao MAX_CONCURRENT_STREAMS da especificação HTTP/2 o mesmo que o ataque MadeYouReset contorna de maneira maliciosa.

Etapas do Ataque “MadeYouReset” no Apache

  1. Conexão é estabelecida via HTTP/2 segura com o servidor (normalmente usando curl com --http2 ou ferramentas como h2c).

  2. O atacante inicia múltiplas requisições GET válidas, mas formatadas para acionar comportamentos edge-case que levam o próprio Apache a emitir RST_STREAM frames para encerrar os streams antes do tempo.

  3. A mágica do ataque está no fato de que, mesmo com o RST_STREAM, o backend continua processando os dados seja por causa do uso de proxies, scripts CGI, handlers PHP ou chamadas internas para APIs da aplicação.

  4. Como o servidor acredita ter encerrado os streams, os limites de concorrência não são respeitados e o atacante pode continuar gerando novas requisições.

  5. Com o tempo, o Apache (e possivelmente o backend) sofre:

    • Saturação do número de processos httpd

    • Esgotamento da fila de requisições

    • Falhas de alocação de memória (out of memory)

    • Queda de performance ou crash total do processo

Por Que a Mitigação Pós-Rapid Reset Falhou Aqui?

Após os ataques Rapid Reset (2023), muitos servidores passaram a contabilizar streams cancelados via RST_STREAM. Contudo, no MadeYouReset:

  • Não é o cliente quem cancela os streams, mas sim o servidor;

  • Isso dribla completamente a mitigação implementada anteriormente;

  • Os logs nem sempre mostram erro o servidor pensa que está tudo sob controle, até colapsar.

Conclusão

O MadeYouReset representa uma evolução inteligente dos ataques baseados em esgotamento de recursos. A simplicidade da execução, aliada à complexidade do impacto no backend, mostra como pequenos desvios na implementação de protocolos modernos como o HTTP/2 podem gerar consequências catastróficas em larga escala.

Se você opera qualquer serviço online com suporte a HTTP/2 — mesmo em servidores bem configurados como no caso do netcattest.com a única forma de se proteger é aplicar as atualizações de segurança imediatamente e, se possível, limitar ou monitorar o uso intenso de streams com ferramentas de WAF e análise de tráfego.

Créditos da Pesquisa

Essa vulnerabilidade foi descoberta por:

  • Gal Bar-Nahum

  • Prof. Anat Bremler-Barr

  • Yaniv Harel
    Com apoio de Imperva e Universidade de Tel Aviv.

MadeYouReset: An HTTP/2 vulnerability thwarted by Rapid Reset mitigations
Foto de Daniel Felipe

Escrito por

Publicado em 2025-08-21T11:44:46+00:00

Mais Publicações

Hacker com capuz e luvas pretas em fundo escuro, entre os símbolos do Linux e da Apple iluminados.

CVE‑2025‑32463 - Execução de Código como Root Linux/Mac

Ver Publicação
CVE-2025-2783: A Grave Vulnerabilidade no Google Chrome

CVE-2025-2783: A Grave Vulnerabilidade no Google Chrome

Ver Publicação
Laboratório de Switching no Cisco Packet Tracer

Laboratório de Switching no Cisco Packet Tracer

Ver Publicação