Vulnerabilidades QPACK en HTTP/3 permiten ataques de amplificación de memoria

Fuentes: QPACK amplification attacks against HTTP/3 servers

Un cliente remoto y no autenticado puede forzar a los servidores HTTP/3 a asignar decenas de miles de veces más memoria de la que envía, lo que puede provocar un fallo de memoria (OOM) o agotar recursos en servidores con configuración por defecto. Esta vulnerabilidad, identificada por Sébastien Féry, afecta a siete de las diez implementaciones de QPACK probadas, aunque varias ya han sido corregidas. El problema radica en que algunas implementaciones no aplican correctamente los límites de cabeceras descompresadas, permitiendo que un pequeño frame de cabeceras se expanda en cientos de miles de objetos en memoria. Para mitigar esto, se requiere aplicar un presupuesto acumulativo mientras se decodifican las cabeceras. Las versiones parcheadas incluyen quic-go 0.57.0, Cloudflare quiche 0.29.3, lsquic 4.9.0 y Wireshark 4.6.2. Las implementaciones sin parche incluyen Bun 1.4.3, h3 (hyperium) y aioquic/mitmproxy. Las mitigaciones recomendadas incluyen deshabilitar HTTP/3 en Bun y mitmproxy, o establecer un tamaño máximo razonable en h3. Las implementaciones no afectadas son IIS, Envoy y ngtcp2/nghttp3, que ya aplican límites adecuados.