Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en libuv (CVE-2024-24806)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-918 Falsificación de solicitud en servidor (SSRF)
Fecha de publicación:
07/02/2024
Última modificación:
18/07/2024

Descripción

libuv es una librería de soporte multiplataforma centrada en E/S asíncrona. La función `uv_getaddrinfo` en `src/unix/getaddrinfo.c` (y su contraparte de Windows `src/win/getaddrinfo.c`), trunca los nombres de host a 256 caracteres antes de llamar a `getaddrinfo`. Este comportamiento se puede aprovechar para crear direcciones como `0x00007f000001`, que `getaddrinfo` considera válidas y podrían permitir a un atacante crear payloads que se resuelvan en direcciones IP no deseadas, evitando las comprobaciones de los desarrolladores. La vulnerabilidad surge debido a cómo se maneja la variable `hostname_ascii` (con una longitud de 256 bytes) en `uv_getaddrinfo` y posteriormente en `uv__idna_toascii`. Cuando el nombre de host supera los 256 caracteres, se trunca sin un byte nulo final. Como resultado, los atacantes pueden acceder a API internas o a sitios web (similares a MySpace) que permiten a los usuarios tener páginas `nombre de usuario.ejemplo.com`. Los servicios internos que rastrean o almacenan en caché estas páginas de usuario pueden quedar expuestos a ataques SSRF si un usuario malintencionado elige un nombre de usuario largo y vulnerable. Este problema se solucionó en la versión 1.48.0. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:libuv:libuv:*:*:*:*:*:*:*:* 1.24.0 (incluyendo) 1.48.0 (excluyendo)