Una vulnerabilidad crítica en Node.js amenaza con derribar “virtualmente todas las aplicaciones de producción”

Un error en el manejo de async_hooks impide que los servidores se recuperen de un desbordamiento de pila (stack overflow), provocando caídas inmediatas. Frameworks como Next.js y herramientas de monitoreo como Datadog son vulnerables. 

El ecosistema de JavaScript en el servidor enfrenta una crisis de disponibilidad. Node.js ha emitido actualizaciones de emergencia para corregir un fallo de seguridad (CVE-2025-59466) que afecta a una pieza fundamental de su arquitectura asíncrona, poniendo en riesgo a millones de aplicaciones web en todo el mundo. 

Según la investigación, el problema es tan omnipresente que afecta a “virtualmente todas las aplicaciones de Node.js en producción” que utilicen herramientas modernas de monitoreo o frameworks populares. 


El Fallo: Cuando el Servidor se Rinde 

El problema reside en la interacción entre el motor V8 y el módulo async_hooks de Node.js. 

  • El Comportamiento Normal: Normalmente, cuando una aplicación sufre un desbordamiento de pila (Stack Overflow) debido a una recursión excesiva, Node.js intenta capturar el error para permitir que la aplicación se recupere o maneje la excepción con elegancia. 
  • El Bug (CVE-2025-59466): Si la aplicación tiene habilitados los async_hooks (usados para rastrear el ciclo de vida de operaciones asíncronas), este mecanismo de recuperación falla. En lugar de lanzar un error capturable, el proceso de Node.js termina abruptamente con el código de salida 7, matando el servidor instantáneamente. 
  • El Ataque: Un atacante puede provocar esta condición enviando payloads diseñados (como estructuras JSON profundamente anidadas) que fuercen una recursión profunda en el código del servidor, causando una Denegación de Servicio (DoS) trivial pero efectiva. 

Víctimas de Alto Perfil 

Este fallo no es teórico. Afecta directamente a cualquier software que dependa de AsyncLocalStorage, un componente construido sobre async_hooks. Esto incluye: 

  • Frameworks: React Server Components, Next.js. 
  • APM (Monitoreo): Agentes de Datadog, New Relic, Dynatrace, Elastic APM y OpenTelemetry. 

Básicamente, si tu aplicación Node.js tiene un agente de monitoreo instalado (lo cual es estándar en producción), eres vulnerable. 


Solución y Versiones 

El equipo de Node.js ha lanzado versiones parcheadas que garantizan que los errores de desbordamiento de pila sean capturables nuevamente. Debes actualizar a una de las siguientes versiones de inmediato: 

  • Node.js 20.20.0 (LTS) 
  • Node.js 22.22.0 (LTS) 
  • Node.js 24.13.0 (LTS) 
  • Node.js 25.3.0 (Actual) 

Nota Importante: Las versiones antiguas (desde la 8.x hasta la 18.x) también son vulnerables, pero al haber llegado al final de su vida útil (EOL), no recibirán parche. Si sigues en Node 18 o inferior, estás expuesto indefinidamente. 


Otras Correcciones 

Además del fallo de DoS, esta actualización corrige otras tres vulnerabilidades de severidad alta: 

  • CVE-2025-55131: Fuga o corrupción de datos. 
  • CVE-2025-55130: Lectura de archivos sensibles mediante enlaces simbólicos (symlinks). 
  • CVE-2025-59465: Denegación de servicio remota adicional. 

Related Post