La Vulnerabilidad MadeYouReset en HTTP/2 y su Impacto en la Infraestructura Web
La Nueva Era de Ataques de DenegaciĂłn de Servicio Silenciosos
MadeYouReset, identificada con el nĂşmero de seguimiento CVE-2025-8671, es una vulnerabilidad de alta gravedad que representa una amenaza significativa para la infraestructura web global. Clasificada con una puntuaciĂłn de 7.5 en la escala CVSS, esta falla de seguridad permite a los atacantes llevar a cabo eficientes ataques de denegaciĂłn de servicio (DoS) y denegaciĂłn de servicio distribuido (DDoS) contra implementaciones del protocolo HTTP/2. El descubrimiento fue el resultado de una divulgaciĂłn coordinada por investigadores de la Universidad de Tel Aviv, en colaboraciĂłn con Imperva y Deepness Lab.
La vulnerabilidad aprovecha un desajuste fundamental y crĂtico entre el estado lĂłgico de los streams de HTTP/2 y el procesamiento real en el backend del servidor. Este desajuste permite a un actor de amenazas desencadenar el agotamiento de recursos del servidor, como la sobrecarga de la CPU o el consumo excesivo de memoria, lo que puede provocar la interrupciĂłn del servicio para los usuarios legĂtimos o incluso el colapso del sistema.
Primitive
Server
El ataque MadeYouReset representa una evoluciĂłn sofisticada de la conocida vulnerabilidad de 2023, "Rapid Reset" (CVE-2023-44487). A diferencia de su predecesor, que se basaba en que el cliente enviara un alto volumen de tramas RST_STREAM para anular solicitudes de forma masiva, MadeYouReset elude las defensas existentes al engañar al servidor para que sea Ă©l mismo quien inicie el restablecimiento de streams. Esta caracterĂstica hace que el ataque sea intrĂnsecamente más sigiloso y difĂcil de detectar con las medidas de seguridad convencionales que se implementaron para contrarrestar a Rapid Reset. La naturaleza del ataque, que imita el tráfico legĂtimo, exige un cambio de enfoque en la detecciĂłn, pasando de la simple limitaciĂłn de volumen a un análisis de comportamiento más avanzado.
La vulnerabilidad afecta a una amplia gama de implementaciones de HTTP/2, incluyendo productos de fabricantes prominentes como Apache Tomcat, F5, Fastly y el framework Netty. Como principal medida de mitigaciĂłn, se insta a los administradores de sistemas a aplicar los parches de seguridad de los proveedores de forma inmediata. Para los entornos donde el parcheo no sea factible a corto plazo, se han recomendado estrategias defensivas temporales, como la validaciĂłn estricta de las tramas de protocolo y, en escenarios de riesgo crĂtico, la desactivaciĂłn temporal de HTTP/2 en favor de HTTP/1.1.
2. AnatomĂa de la Falla: Por QuĂ© HTTP/2 es Vulnerable a "MadeYouReset"
2.1. El Desajuste Fundamental: Estado LĂłgico vs. Procesamiento FĂsico
El nĂşcleo de la vulnerabilidad MadeYouReset no es un defecto inherente en el diseño del protocolo HTTP/2, sino una deficiencia en la forma en que muchas implementaciones del protocolo manejan el ciclo de vida de los streams. HTTP/2 se basa en la multiplexaciĂłn de streams, permitiendo mĂşltiples intercambios de datos bidireccionales sobre una Ăşnica conexiĂłn TCP. Una de sus caracterĂsticas clave es la capacidad de cancelar un stream en cualquier momento, ya sea por el cliente o por el servidor, mediante una trama de control RST_STREAM.
El problema surge de una discrepancia fundamental. SegĂşn la especificaciĂłn de HTTP/2, cuando un stream es restablecido por una trama RST_STREAM, se considera cerrado y su ranura de conexiĂłn se libera del contador de streams activos, que está limitado por el parámetro SETTINGS_MAX_CONCURRENT_STREAMS. Sin embargo, por razones de diseño o por la dificultad de detener abruptamente el procesamiento, muchas implementaciones continĂşan ejecutando la solicitud en el backend del servidor, incluso despuĂ©s de que la conexiĂłn del cliente haya sido lĂłgicamente cerrada a nivel de protocolo. Este desajuste crea un vacĂo en la contabilidad: el servidor cree que puede aceptar nuevas solicitudes, ya que el contador de streams ha disminuido, mientras que en realidad los recursos del backend siguen comprometidos con las solicitudes "fantasma" que ya han sido restablecidas.
Diagrama de Desajuste de Estado en el Servidor
MYR
GET 5
MYR
GET 3
MYR
GET 1
RST
RST
RST
Module
Connection
Requests
2.2. De "Rapid Reset" a "MadeYouReset": La EvoluciĂłn del Ataque
La vulnerabilidad MadeYouReset es una consecuencia directa y una evoluciĂłn del ataque "Rapid Reset" de 2023. La tĂ©cnica de Rapid Reset se aprovechaba de la "brecha de contabilidad" al abrumar el servidor con una ráfaga masiva de tramas RST_STREAM enviadas directamente por el cliente para cancelar peticiones casi instantáneamente. Las mitigaciones que se implementaron a raĂz de este ataque se centraron en detectar esta firma de ataque especĂfica, principalmente mediante la limitaciĂłn de la tasa de tramas RST_STREAM que un cliente podĂa enviar.
Comprendiendo la limitaciĂłn de estas defensas, los autores de MadeYouReset buscaron una forma de lograr el mismo resultado, es decir, el agotamiento del backend, sin generar la misma firma detectable. Al manipular al servidor para que se restablezca a sĂ mismo, el atacante evita por completo la lĂłgica de detecciĂłn original. Este cambio en la metodologĂa demuestra un ciclo de innovaciĂłn en los ataques a nivel de protocolo, donde los actores de amenazas analizan las defensas para encontrar una nueva forma de alcanzar el mismo objetivo, subrayando que la seguridad requiere un enfoque adaptativo que vaya más allá de la detecciĂłn de firmas.
2.3. Las Primitivas del Ataque: Engañando al Servidor
En lugar de enviar tramas de restablecimiento directamente, el ataque MadeYouReset utiliza tramas que son malformadas pero que siguen siendo sintácticamente válidas, lo que provoca que el propio servidor detecte un error de protocolo y reaccione restableciendo el stream o la conexión completa. La especificación RFC 9113 obliga a los servidores a responder con una trama RST_STREAM cuando detectan ciertos tipos de violaciones. Los vectores de ataque clave identificados incluyen:
- Abuso de WINDOW_UPDATE: El atacante envĂa una trama WINDOW_UPDATE que viola las reglas de control de flujo. Esto puede hacerse con un incremento de flujo de control de 0, lo cual está explĂcitamente prohibido por la especificaciĂłn, o enviando un valor que excede el lĂmite superior de 231−1. El servidor, al procesar esta trama, detecta el error y debe restablecer el stream.
- Abuso de PRIORITY: La trama PRIORITY debe tener una longitud de campo de exactamente 5 octetos. El envĂo de una trama PRIORITY con una longitud diferente provoca una violaciĂłn del protocolo que obliga al servidor a generar una trama RST_STREAM.
- Abuso de Streams Medio-Cerrados: La especificaciĂłn de HTTP/2 establece un estado de "medio-cerrado" para los streams. El envĂo de tramas adicionales como HEADERS o DATA en un stream que ha sido puesto en este estado es una violaciĂłn del protocolo. En respuesta, el servidor debe emitir una trama RST_STREAM para cerrar el stream de forma limpia.
El uso de estas primitivas demuestra que el ataque MadeYouReset es un ataque lĂłgico de agotamiento de recursos más que un simple ataque de inundaciĂłn. El atacante no necesita una tasa de tráfico absurdamente alta. Simplemente requiere una conexiĂłn persistente y la capacidad de enviar estas tramas cuidadosamente diseñadas de forma repetida para agotar los recursos del servidor sin exceder los lĂmites de concurrencia aparentes.
CaracterĂstica | Rapid Reset (CVE-2023-44487) | MadeYouReset (CVE-2025-8671) |
---|---|---|
Vector de Ataque Primario | El cliente inunda el servidor con tramas RST_STREAM. | El atacante engaña al servidor para que envĂe sus propias tramas RST_STREAM. |
Mecanismos de ExplotaciĂłn | Apertura y cancelaciĂłn rápida de streams a travĂ©s de tramas RST_STREAM directas. | EnvĂo de tramas malformadas (WINDOW_UPDATE, PRIORITY, etc.) que provocan errores de protocolo. |
Firma de Ataque (Detección) | Alta tasa de tramas RST_STREAM originadas por el cliente. | Alta tasa de tramas RST_STREAM originadas por el servidor, con bajo volumen de tráfico de datos. |
Impacto en Defensas Previas | Mitigado por la limitaciĂłn de la tasa de tramas RST_STREAM por cliente. | Evita las defensas existentes al hacer que el restablecimiento provenga del servidor. |
Naturaleza del Ataque | Volumétrico, basado en la velocidad de cancelación. | Sigiloso, basado en la lógica de errores del protocolo. |
3. El Impacto en la Infraestructura: Más Allá del Simple DoS
3.1. Agotamiento de Recursos y Colapso del Servidor
El resultado directo y más grave de la explotación de MadeYouReset es el agotamiento de los recursos del servidor. Al hacer que el servidor procese una cantidad "ilimitada" de solicitudes concurrentes en una única conexión TCP, el ataque evade el mecanismo de protección del protocolo (SETTINGS_MAX_CONCURRENT_STREAMS) y consume de manera desproporcionada los recursos del sistema. Esto se manifiesta como una sobrecarga masiva de la CPU o una condición de agotamiento de memoria (Out-of-Memory, OOM).
La vulnerabilidad es particularmente perjudicial para los proxies y gateways que manejan el tráfico HTTP/2. Estos dispositivos continúan procesando, almacenando en búfer y retransmitiendo solicitudes al servidor de origen, incluso después de que la conexión del cliente haya sido lógicamente cerrada por el restablecimiento del stream. Al continuar con este trabajo, los proxies incurren en los costos de E/S y búfer, solo para descartar el resultado más tarde. El número de solicitudes concurrentes se vuelve limitado únicamente por la capacidad del backend y no por las restricciones del protocolo, lo que puede provocar un efecto de bola de nieve que colapsa el sistema con una tasa de ataque relativamente baja.
3.2. Alcance y Gravedad de la Amenaza
Dado que HTTP/2 es el pilar de la infraestructura web moderna y alimenta más del 60% de los sitios web principales, el alcance de la vulnerabilidad MadeYouReset es global y de gran preocupación. Investigadores de seguridad coordinaron la divulgación con más de un centenar de proveedores afectados, lo que subraya la naturaleza generalizada de la falla en una amplia variedad de implementaciones de código abierto y productos comerciales.
Existe una discrepancia en la informaciĂłn disponible sobre la explotaciĂłn de la vulnerabilidad en la naturaleza. Si bien algunos informes indican que el ataque ya ha sido utilizado por actores de amenazas, con menciones a grupos de hacktivistas pro-Kremlin como "Z-Alliance", otras fuentes señalan que no habĂa evidencia de explotaciĂłn en el momento de la divulgaciĂłn pĂşblica. Esta aparente contradicciĂłn destaca la velocidad con la que la inteligencia de amenazas se mueve y la urgencia con la que los actores maliciosos intentan adaptar y explotar las vulnerabilidades reciĂ©n divulgadas. El hecho de que se especule sobre la explotaciĂłn por parte de grupos de hacktivistas confirma que la vulnerabilidad se considera una herramienta de alto valor en el arsenal de ataques, lo que respalda las afirmaciones de que la probabilidad de abuso en la naturaleza es del 100%.
4. Implementaciones Afectadas, CVEs y Estado de los Parches
4.1. Panorama de las Implementaciones Vulnerables
La vulnerabilidad genérica, identificada como CVE-2025-8671, afecta a un número considerable de implementaciones del protocolo HTTP/2. Si bien la lista completa sigue evolucionando, varios proveedores importantes han confirmado públicamente su estado de vulnerabilidad y han emitido respuestas coordinadas.
Las implementaciones de software y hardware que han sido confirmadas como afectadas incluyen Apache Tomcat, F5, Fastly, el servidor H2O, el framework Netty, el kit de herramientas Vert.x, el sistema de cachĂ© Varnish y dispositivos F5. Por el contrario, algunos proveedores, como Akamai, han declarado que su implementaciĂłn de HTTP/2 no es vulnerable a MadeYouReset debido a las robustas mitigaciones que ya habĂan aplicado en respuesta a los ataques de Rapid Reset.
4.2. Detalles de CVEs y Parches por Proveedor
Los proveedores afectados han emitido CVEs especĂficos para sus productos, además del identificador genĂ©rico CVE-2025-8671. A continuaciĂłn, se detallan las versiones afectadas y las recomendaciones de mitigaciĂłn para implementaciones clave.
Producto / ImplementaciĂłn | CVEs Relacionados | Versiones Afectadas | Versiones Corregidas / Mitigaciones |
---|---|---|---|
Apache Tomcat | CVE-2025-8671 CVE-2025-48989 |
11.0.0-M1 a 11.0.9 10.1.0-M1 a 10.1.43 9.0.0-M1 a 9.0.107 Y versiones EOL anteriores. |
11.0.10 o posterior 10.1.44 o posterior 9.0.108 o posterior. |
F5 BIG-IP | CVE-2025-8671 CVE-2025-54500 |
BIG-IP Next: 20.3.0 BIG-IP (todos los mĂłdulos): 17.5.0 a 17.5.1, 17.1.0 a 17.1.2, 16.1.0 a 16.1.6, 15.1.0 a 15.1.10. |
Deshabilitar HTTP/2 y usar HTTP/1.1 Aplicar hotfixes especĂficos: Hotfix-BIGIP-17.5.1.0.80.7-ENG.iso, etc. |
Netty | CVE-2025-8671 CVE-2025-55163 |
netty-codec-http2 (Maven) <= 4.2.3.Final <= 4.1.123.Final. |
4.2.4.Final 4.1.124.Final. |
5. Estrategias de MitigaciĂłn y DetecciĂłn: Defensas Multi-Capa
5.1. Acciones Inmediatas y Proactivas
La primera y más crĂtica medida de defensa contra MadeYouReset es aplicar los parches de seguridad proporcionados por los proveedores afectados. La naturaleza del ataque, que se aprovecha de un error de implementaciĂłn, hace que el parcheo sea la forma más directa y eficaz de eliminar la vulnerabilidad. Las organizaciones deben monitorear de cerca los anuncios de seguridad de sus proveedores para obtener la informaciĂłn más actualizada sobre los parches disponibles.
En los casos en que la aplicaciĂłn de parches no sea una opciĂłn inmediata, como en entornos crĂticos con estrictas ventanas de mantenimiento, una medida de mitigaciĂłn temporal consiste en deshabilitar HTTP/2 y volver a HTTP/1.1. Si bien esto elimina la superficie de ataque, tambiĂ©n conlleva una pĂ©rdida de eficiencia del protocolo.
5.2. Endurecimiento del Protocolo y Controles de LĂmite
Para fortalecer la resiliencia del sistema, las implementaciones deben ir más allá de los parches y adoptar una postura de seguridad más estricta. Una estrategia clave es la validaciĂłn rigurosa de las tramas de control. Las implementaciones deben estar configuradas para tratar las tramas malformadas que violan las reglas del protocolo como un error fatal a nivel de conexiĂłn, respondiendo con una trama GOAWAY en lugar de una RST_STREAM a nivel de stream. Este cambio de polĂtica evita que el atacante mantenga la conexiĂłn y genere un nĂşmero ilimitado de solicitudes.
Adicionalmente, la limitación de la tasa de tramas de control es una defensa crucial. Las implementaciones deben limitar la frecuencia con la que un cliente puede enviar tramas PING, SETTINGS, PRIORITY y RST_STREAM. Esta medida previene que un atacante consuma recursos del servidor incluso si no está explotando la vulnerabilidad de MadeYouReset, contribuyendo a una defensa más robusta contra una variedad de ataques de agotamiento de recursos.
5.3. DetecciĂłn de Comportamiento y Observabilidad
Debido a que MadeYouReset es un ataque lĂłgico y no un simple ataque de inundaciĂłn, la detecciĂłn debe enfocarse en patrones de comportamiento anĂłmalos. Las defensas deben monitorear las mĂ©tricas de rendimiento y protocolo para identificar actividades sospechosas que no se manifestarĂan en un simple recuento de volumen de tráfico.
Las señales clave de un intento de explotación de MadeYouReset incluyen:
- Aumento de tramas de restablecimiento del servidor: Un aumento repentino en el nĂşmero de tramas RST_STREAM enviadas por el servidor, sin un aumento correspondiente en las tramas RST_STREAM recibidas del cliente.
- Discrepancia de solicitudes: Un alto nĂşmero de inicios de solicitudes en el backend que no se corresponde con el nĂşmero de respuestas enviadas al cliente.
- Agotamiento de recursos encubierto: Un aumento significativo en el consumo de CPU o memoria en el servidor sin un incremento observable en el contador de streams activos de HTTP/2.
- AnomalĂas por conexiĂłn: Una Ăşnica direcciĂłn IP que mantiene una conexiĂłn HTTP/2 de larga duraciĂłn y genera una carga sustancial de tráfico en el backend a travĂ©s de un nĂşmero bajo de streams activos.
La correlación de estas métricas, desde el nivel del protocolo hasta el rendimiento del backend, es vital para identificar los ataques lógicos y basados en la lógica que evaden las defensas tradicionales.
6. ConclusiĂłn y Lecciones Aprendidas: Mirando Hacia el Futuro de la Seguridad de Protocolos
La vulnerabilidad MadeYouReset es un claro recordatorio de que incluso los protocolos maduros y bien establecidos como HTTP/2 pueden albergar fallas latentes que pueden ser explotadas de manera devastadora. El ataque no es un defecto de diseño en el protocolo en sĂ, sino una falla en su implementaciĂłn, y su capacidad para eludir las defensas implementadas contra un ataque anterior demuestra la naturaleza de "gato y ratĂłn" de la ciberseguridad. Los actores de amenazas continuamente estudian y adaptan sus tĂ©cnicas para superar las medidas defensivas.
Esta vulnerabilidad también pone de manifiesto la tensión inherente entre el rendimiento y la seguridad en el desarrollo de protocolos y software. Las implementaciones que priorizan la velocidad y la eficiencia pueden inadvertidamente dejar la puerta abierta a vulnerabilidades lógicas.
A medida que la industria avanza hacia HTTP/3 y QUIC, que también se basan en la multiplexación y la concurrencia, es inevitable que surjan vectores de ataque similares. La lección de MadeYouReset es que la defensa efectiva contra las amenazas a los protocolos exige un enfoque multifacético que combine el parcheo oportuno, el endurecimiento riguroso de la configuración de la seguridad, la limitación de la tasa de tramas de control y la adopción de herramientas de monitoreo avanzadas que puedan identificar patrones de ataque sutiles basados en el comportamiento del sistema, en lugar de depender únicamente de la detección de firmas o de la fuerza bruta.