Un cliente remoto y no autenticado puede obligar a un servidor HTTP/3 a asignar decenas o miles de veces más memoria de la que envía. Basta una sola conexión para dejar sin memoria a un servidor o bloquear un servidor con la configuración predeterminada. Siete de las diez implementaciones probadas son vulnerables, y varias ya han sido corregidas.
QPACK comprime las cabeceras de HTTP/3 para minimizar el tráfico transmitido por la red. En las implementaciones afectadas, faltan límites para las cabeceras decodificadas, están incompletos o se aplican demasiado tarde. Por ello, una trama HEADERS pequeña puede expandirse hasta cientos de miles de objetos de cabecera en memoria. Para evitar esa expansión es necesario aplicar un presupuesto acumulado a medida que los campos se decodifican y se retienen.
La investigación comenzó al estudiar las pilas QUIC para el escáner TLS JA4Scan, donde apareció la misma clase de vulnerabilidad en varias implementaciones de HTTP/3. La RFC 9114 define cómo los servidores deben limitar el tamaño de las cabeceras decodificadas, pero algunas implementaciones solo comprueban el tamaño de la trama comprimida, descomprimen todo antes de verificar, omiten la sobrecarga de 32 bytes por campo, dejan el valor sin límite cuando el ajuste no está configurado, o nunca aplican el ajuste.
El ataque funciona en dos direcciones. Una trama HEADERS de 1.000.000 bytes puede contener unas 160.000 cabeceras únicas, mientras que una variante con tabla dinámica inserta una entrada grande y la referencia miles de veces con índices de un byte, lo que produce una proporción de 4064:1 en lsquic y Bun.
quic-go, Cloudflare quiche, lsquic y Wireshark tienen correcciones disponibles. Bun, el crate h3 y aioquic/mitmproxy seguían sin parchear a 20 de octubre de 2026. Las mitigaciones incluyen no exponer servidores HTTP/3, desactivar HTTP/3 en mitmproxy y establecer un max_field_section_size razonable en h3. IIS, Envoy y ngtcp2/nghttp3 no se ven afectados.
Fuente: Hacker News · Resumido por HeadlinesBriefing