Nueva vulnerabilidad HTTP/2 permite ataques de denegación de servicio masivos
Nueva vulnerabilidad HTTP/2 permite ataques de denegación de servicio masivos

Nueva vulnerabilidad HTTP/2 permite ataques de denegación de servicio masivos

Se ha descubierto una nueva técnica de ataque contra implementaciones de HTTP/2, denominada MadeYouReset, que podría utilizarse para realizar ataques de denegación de servicio (DoS) a gran escala. Esta vulnerabilidad fue revelada gracias a la colaboración entre Imperva e investigadores de la Universidad de Tel Aviv.

Características del ataque

MadeYouReset explota el mecanismo de cancelación de flujos en HTTP/2, permitiendo al atacante hacer que el servidor reinicie sus propios flujos sin violar directamente las reglas del protocolo. A diferencia de la vulnerabilidad Rapid Reset (CVE-2023-44487), donde los clientes envían tramas RST_STREAM para agotar recursos del servidor, MadeYouReset engaña al servidor para que restablezca sus propios flujos.

Los investigadores destacan que este ataque supera el límite habitual de 100 solicitudes HTTP/2 simultáneas por conexión TCP desde un cliente. Este límite se estableció con la intención de mitigar ataques DoS, pero MadeYouReset permite al atacante enviar miles de solicitudes, lo que puede provocar una condición de denegación de servicio para usuarios legítimos y, en algunas implementaciones, incluso fallos por falta de memoria.

Detalles técnicos

MadeYouReset se basa en el uso de tramas RST_STREAM y CONTINUATION del protocolo HTTP/2. El ataque aprovecha que la trama RST_STREAM puede utilizarse tanto para cancelar una transmisión iniciada por el cliente como para señalar errores de transmisión. Esto se logra mediante el envío de tramas cuidadosamente diseñadas que desencadenan violaciones de protocolo inesperadas, lo que obliga al servidor a reiniciar la transmisión.

Las seis primitivas que hacen que el servidor envíe tramas RST_STREAM incluyen:

  • Trama WINDOW_UPDATE con un incremento de 0
  • Trama PRIORITY con una longitud distinta de 5 (la única longitud válida)
  • Trama PRIORITY que hace que un flujo dependa de sí mismo
  • Trama WINDOW_UPDATE con un incremento que hace que la ventana supere 2^31 − 1 (el tamaño máximo permitido)
  • Trama HEADERS enviada después de que el cliente haya cerrado el flujo (mediante el indicador END_STREAM)
  • Trama DATA enviada después de que el cliente haya cerrado el flujo (mediante el indicador END_STREAM)

Este ataque es notable porque evita que un atacante envíe una trama RST_STREAM, omitiendo así por completo las mitigaciones de reinicio rápido. Además, tiene el mismo impacto que Rapid Reset.

Vulnerabilidades afectadas

La vulnerabilidad se ha asignado el identificador CVE-2025-8671 y afecta a varios productos, incluyendo Apache Tomcat (CVE-2025-48989), F5 BIG-IP (CVE-2025-54500) y Netty (CVE-2025-55163).

El Centro de Coordinación CERT (CERT/CC) ha emitido un aviso indicando que MadeYouReset explota una discrepancia causada por los reinicios de flujo entre las especificaciones HTTP/2 y las arquitecturas internas de muchos servidores web reales, lo que resulta en el agotamiento de recursos.

Contexto adicional

La divulgación de MadeYouReset se produce después de la revelación de nuevos ataques de desincronización de HTTP/1.1 por parte de PortSwigger, que expone a millones de sitios web a ataques hostiles. Estos ataques, también conocidos como contrabando de solicitudes HTTP, aprovechan inconsistencias en el análisis de solicitudes HTTP no conformes con RFC por parte de los servidores front-end y back-end.

HTTP/2+ elimina la ambigüedad que existe en HTTP/1.1 sobre dónde termina una solicitud y dónde comienza la siguiente, lo que hace que los ataques de desincronización sean prácticamente imposibles. Sin embargo, habilitar HTTP/2 en el servidor perimetral no es suficiente; debe usarse para la conexión ascendente entre el proxy inverso y el servidor de origen.