enero 14, 2026
node.jpg

14 de enero de 2026Ravie LakshmananSeguridad/vulnerabilidad de la aplicación

Node.js ha publicado actualizaciones para abordar un problema de seguridad crítico que afecta a “prácticamente todas las aplicaciones de producción de Node.js” y podría desencadenar una condición de denegación de servicio (DoS) si se explota con éxito.

“Node.js/V8 está haciendo un gran esfuerzo para abordar el agotamiento del espacio de pila con un error tratable del que dependen los marcos de disponibilidad de servicios”, dijeron Matteo Collina y Joyee Cheung de Node.js en un boletín del martes.

“Un error que solo se reproduce cuando se usan async_hooks interrumpiría este intento y provocaría que Node.js salga directamente en 7 sin generar un error detectable cuando las recursiones en el código de usuario agotan la memoria de la pila. Esto deja a las aplicaciones cuya profundidad de recursión está controlada por entradas no saneadas vulnerables a ataques de denegación de servicio”.

En esencia, la falla es que cuando se produce un desbordamiento de pila en el código de usuario mientras async_hooks está habilitado, Node.js sale con el código 7 (lo que indica un error de tiempo de ejecución del controlador de excepciones interno) en lugar de manejar adecuadamente la excepción. Async_hooks es una API de Node.js de bajo nivel que permite a los desarrolladores realizar un seguimiento del ciclo de vida de recursos asincrónicos, como consultas de bases de datos, temporizadores o solicitudes HTTP.

Ciberseguridad

Según Node.js, el problema afecta a múltiples marcos y herramientas de monitoreo del rendimiento de aplicaciones (APM), incluidos React Server Components, Next.js, Datadog, New Relic, Dynatrace, Elastic APM y OpenTelemetry, debido al uso de AsyncLocalStorage, un componente construido sobre el módulo async_hooks que permite almacenar datos durante la vida útil de una operación asincrónica.

Se ha solucionado en las siguientes versiones:

  • Node.js 20.20.0 (LTS)
  • Node.js 22.22.0 (LTS)
  • Node.js 24.13.0 (LTS)
  • Node.js 25.3.0 (más reciente)

El problema también afecta a todas las versiones de Node.js desde 8.x, la primera versión con async_hooks, hasta 18.x. Vale la pena señalar que la versión 8.0.0 de Node.js, con nombre en código Carbon, se lanzó el 30 de mayo de 2017. Sin embargo, estas versiones no están parcheadas porque han alcanzado el estado de fin de vida útil (EoL).

La solución introducida detecta errores de desbordamiento de pila y los vuelve a incluir en el código de usuario en lugar de tratarlos como fatales. Esto se rastrea bajo el identificador CVE. CVE-2025-59466 (Puntuación CVSS: 7,5). A pesar del importante impacto práctico, Node.js considera que la solución es solo una solución alternativa por varias razones:

Ciberseguridad

“Aunque se trata de una solución para un comportamiento no especificado, hemos decidido incluirlo en la versión de seguridad debido a su amplio impacto en el ecosistema”, dijo Node.js. “Los componentes de React Server, Next.js y prácticamente todas las herramientas APM se ven afectados. La solución mejora la experiencia del desarrollador y hace que el manejo de errores sea más predecible”.

Dada la gravedad de la vulnerabilidad, se recomienda a los usuarios de los marcos/herramientas y a los proveedores de alojamiento de servidores que actualicen lo antes posible. Se alienta a los mantenedores de bibliotecas y marcos a adoptar defensas más sólidas para abordar el agotamiento del espacio de la pila y garantizar la disponibilidad del servicio.

La divulgación se produce cuando Node.js también lanzó correcciones para tres vulnerabilidades adicionales de alto nivel (CVE-2025-55131, CVE-2025-55130 y CVE-2025-59465) que podrían explotarse para causar pérdida o corrupción de datos, leer archivos confidenciales utilizando rutas de enlace simbólico relativo (enlace simbólico) diseñadas o activar denegación de servicio remota.

About The Author