Se ha descubierto que varias implementaciones de HTTP/2 son susceptibles a una
nueva técnica de ataque llamada
MadeYouReset, que podría explorarse para llevar a cabo potentes ataques de denegación de
servicio (DoS).
HTTP/2 se diseñó para mejorar el rendimiento: conexiones multiplexadas más
rápidas, priorización de flujos y compresión de encabezados. Sin embargo,
estas mismas características también han abierto la puerta a sofisticados
ataques de denegación de servicio. En 2023, la vulnerabilidad de
reinicio rápido de HTTP/2
acaparó titulares después de que atacantes explotaran el mecanismo de
cancelación de flujos del protocolo para
bloquear servicios a gran escala.
Ahora, con una nueva y fascinante variante descubierta gracias a la
colaboración entre Imperva e investigadores de la Universidad de Tel Aviv, las
reglas del juego han cambiado. El
descubrimiento fue realizado por Gal Bar Nahum, estudiante de maestría, y la profesora
Anat Bremler-Barr
del
Laboratorio Deepness
de la Escuela Blavatnik de Ciencias de la Computación e Inteligencia
Artificial, junto con el
Dr. Yaniv Harel
del Centro Cibernético de la Universidad de Tel Aviv. A diferencia de la
versión original, donde los clientes envían spam con tramas RST_STREAM para
agotar los recursos del servidor, este nuevo método engaña al servidor para
que restablezca sus propios flujos, causando daños similares sin violar
directamente las reglas del protocolo: de ahí el nombre:
«MadeYouReset».
«MadeYouReset supera el límite habitual impuesto por el servidor de 100
solicitudes HTTP/2 simultáneas por conexión TCP desde un cliente. Este
límite pretende mitigar los ataques DoS al restringir el número de
solicitudes simultáneas que un cliente puede enviar», afirmaron los investigadores Gal Bar Nahum, Anat Bremler-Barr y Yaniv
Harel.
«Con MadeYouReset, un atacante puede enviar miles de solicitudes, lo que
crea una condición de denegación de servicio para usuarios legítimos y, en
algunas implementaciones de proveedores, puede escalar hasta provocar fallos
por falta de memoria».

MadeYouReset es la última vulnerabilidad en HTTP/2, tras Rapid Reset
(CVE-2023-44487) y HTTP/2 CONTINUATION Flood, que podría utilizarse como arma para organizar ataques DoS a gran escala.
Al igual que los otros dos ataques utilizan las tramas RST_STREAM y
CONTINUATION, respectivamente, en el protocolo HTTP/2 para ejecutar el ataque,
MadeYouReset se basa en Rapid Reset y su mitigación, lo que limita el número
de transmisiones que un cliente puede cancelar mediante RST_STREAM.
Específicamente, aprovecha que la trama RST_STREAM se utiliza tanto para la
cancelació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 de forma inesperada, lo que obliga al
servidor a reiniciar la transmisión mediante la emisión de un RST_STREAM.
«Para que MadeYouReset funcione, la transmisión debe comenzar con una
solicitud válida que el servidor comience a procesar y luego generar un
error de transmisión para que el servidor emita un RST_STREAM mientras el
backend continúa procesando la respuesta», explicó Bar Nahum.
«Al crear ciertas tramas de control no válidas o violar la secuencia del
protocolo en el momento justo, podemos hacer que el servidor envíe un
RST_STREAM para una transmisión que ya contenía una solicitud válida».
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 (que es el tamaño máximo de ventana 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, sobre todo porque evita que un atacante envíe una
trama RST_STREAM, omitiendo así por completo las mitigaciones de reinicio
rápido, y además tiene el mismo impacto que este último.
En un
aviso, el Centro de Coordinación CERT (CERT/CC) indicó 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, algo que un atacante puede aprovechar
para inducir un ataque DoS.
«El descubrimiento de vulnerabilidades de reinicio rápido activadas por el
servidor pone de relieve la creciente complejidad del abuso de protocolos
modernos»,
declaró Imperva.
«Dado que HTTP/2 sigue siendo la base de la infraestructura web, protegerlo
contra ataques sutiles que cumplen con las especificaciones, como
MadeYouReset, es más crucial que nunca».
HTTP/1.1 debe morir
La divulgación de MadeYouReset se produce después de que la firma de seguridad
de aplicaciones
PortSwigger detallara nuevos ataques de desincronización de HTTP/1.1
(también conocidos como
contrabando de solicitudes HTTP), incluyendo una
variante de CL.0 llamada 0.CL, que expone a millones de sitios web a ataques hostiles.
Akamai (CVE-2025-32094)
y
Cloudflare (CVE-2025-4366)
han abordado los problemas. Para más información se puede ver
HTTP 1 MUST DIE.
El contrabando (smuggling) de solicitudes HTTP es una vulnerabilidad de
seguridad que afecta al protocolo de la capa de aplicación y que aprovecha la
inconsistencia en el análisis de solicitudes HTTP no conformes con RFC por
parte de los servidores front-end y back-end, lo que permite a
un atacante «contrabandear» una solicitud y eludir las medidas de seguridad.
«HTTP/1.1 tiene una falla fatal: los atacantes pueden crear una ambigüedad
extrema sobre dónde termina una solicitud y dónde comienza la siguiente», declaró James Kettle de PortSwigger. HTTP/2+ elimina esta ambigüedad, 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.
Fuente:
THN