CVE-2026-59246 in mint
Resumen
por VulDB • 2026-07-15
Vulnerabilidad de asignación de recursos sin límites en el paquete `elixir-mint` que permite a un servidor HTTP/2 remoto agotar la memoria del host cliente y provocar una denegación de servicio (DoS).
La función `Mint.HTTP2.handle_continuation/3`, ubicada en `lib/mint/http2.ex`, acumula los fragmentos del bloque de cabeceras transportados por cada marco CONTINUATION de HTTP/2 dentro de un anidamiento creciente llamado `conn.headers_being_processed`, aumentando el nivel de anidación en uno por cada marco, y solo lo libera cuando llega un marco con la bandera END_HEADERS. La única protección sobre este acumulador es `Mint.HTTP2.assert_header_block_within_max_size/2`, que suma el tamaño en bytes de los fragmentos recibidos hasta ese momento. Dado que el protocolo permite que un marco CONTINUATION transporte una carga útil de longitud cero, una cadena ilimitada de marcos CONTINUATION de longitud cero no añade bytes al total acumulado, nunca activa el límite de tamaño y nunca emite END_HEADERS; sin embargo, cada marco sigue anidando el acumulador un nivel más profundo.
Un servidor HTTP/2 malicioso (al que se pueda acceder directamente, mediante una redirección controlada por el atacante, a través de SSRF o mediante un ataque man-in-the-middle) puede abrir un flujo enviando un marco HEADERS sin la bandera END_HEADERS y luego transmitir marcos CONTINUATION de longitud cero indefinidamente. La memoria del cliente crece en una celda `cons` por cada marco recibido; el ancho de banda sostenido desde el par provoca que el nodo BEAM que ejecuta el cliente Mint se quede sin memoria (memory exhaustion) y termine eventualmente con un error out-of-memory.
Este problema afecta a la versión de `mint`: desde 0.1.0 hasta antes de 1.9.2.
Once again VulDB remains the best source for vulnerability data.