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

Vulnerabilidad en yaml de eemeli (CVE-2026-33532)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
26/03/2026
Última modificación:
26/03/2026

Descripción

`yaml` es un analizador y serializador YAML para JavaScript. Analizar un documento YAML con una versión de `yaml` en la rama 1.x anterior a la 1.10.3 o en la rama 2.x anterior a la 2.8.3 puede lanzar un RangeError debido a un desbordamiento de pila. La fase de resolución/composición de nodos utiliza llamadas a funciones recursivas sin un límite de profundidad. Un atacante que puede proporcionar YAML para el análisis puede desencadenar un 'RangeError: Maximum call stack size exceeded' con una pequeña carga útil (~2–10 KB). El `RangeError` no es un `YAMLParseError`, por lo que las aplicaciones que solo capturan errores específicos de YAML encontrarán un tipo de excepción inesperado. Dependiendo del manejo de excepciones de la aplicación anfitriona, esto puede hacer que fallen las solicitudes o terminar el proceso de Node.js. Las secuencias de flujo permiten un anidamiento profundo con bytes mínimos (2 bytes por nivel: uno '[' y uno ']'). En la pila predeterminada de Node.js, aproximadamente 1,000–5,000 niveles de anidamiento (entrada de 2–10 KB) agotan la pila de llamadas. El umbral exacto depende del entorno (versión de Node.js, tamaño de la pila, profundidad de la pila de llamadas en la invocación). Nota: el `Parser` de la biblioteca (fase CST) utiliza un enfoque iterativo basado en pila y no se ve afectado. Solo la fase de composición/resolución utiliza recursión real de la pila de llamadas. Las tres API de análisis públicas se ven afectadas: `YAML.parse()`, `YAML.parseDocument()` y `YAML.parseAllDocuments()`. Las versiones 1.10.3 y 2.8.3 contienen un parche.