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

Vulnerabilidad en Underscore.js (CVE-2026-27601)

Gravedad CVSS v4.0:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
03/03/2026
Última modificación:
28/04/2026

Descripción

Underscore.js es una librería de utilidades para JavaScript. Antes de la versión 1.13.8, las funciones _.flatten y _.isEqual usan recursión sin un límite de profundidad. Bajo condiciones muy específicas, detalladas a continuación, un atacante podría explotar esto en un ataque de denegación de servicio (DoS) al desencadenar un desbordamiento de pila. Se debe usar entrada no confiable para crear una estructura de datos recursiva, por ejemplo, usando JSON.parse, sin un límite de profundidad impuesto. La estructura de datos así creada debe pasarse a _.flatten o _.isEqual. En el caso de _.flatten, la vulnerabilidad solo puede ser explotada si es posible para un cliente remoto preparar una estructura de datos que consista en arrays en todos los niveles Y si no se pasa un límite de profundidad finito como segundo argumento a _.flatten. En el caso de _.isEqual, la vulnerabilidad solo puede ser explotada si existe una ruta de código en la que dos estructuras de datos distintas que fueron enviadas por el mismo cliente remoto se comparan usando _.isEqual. Por ejemplo, si un cliente envía datos que se almacenan en una base de datos, y el mismo cliente puede luego enviar otra estructura de datos que luego se compara con los datos que se guardaron en la base de datos previamente, O si un cliente envía una única solicitud, pero sus datos se analizan dos veces, creando dos estructuras de datos no idénticas pero equivalentes que luego se comparan. Las excepciones que se originan de la llamada a _.flatten o _.isEqual, como resultado de un desbordamiento de pila, no están siendo capturadas. Esta vulnerabilidad está corregida en la versión 1.13.8.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:underscorejs:underscore:*:*:*:*:*:node.js:*:* 1.13.8 (excluyendo)