المشاركات

MadeYouReset: La nueva vulnerabilidad en HTTP/2 - Evolucion de "Rapid Reset" que amenaza con ataques DDOS.

Análisis de la Vulnerabilidad "MadeYouReset" en HTTP/2

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.

💀
SID:X
MadeYouReset
Primitive
SID:X
Request
Web
Server
valid request
cause a stream error
sent after the request

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

💀
SID:5
MYR
SID:5
GET 5
SID:3
MYR
SID:3
GET 3
SID:1
MYR
SID:1
GET 1
SID:1
RST
SID:3
RST
SID:5
RST
Web Server
HTTP/2
Module
HTTP/2
Connection
Active Streams: 0
Backend
Active
Requests
GET 1
GET 3
GET 5

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.

إرسال تعليق

Hola