← Blog
🛡️ Vulnerabilidad2 de octubre de 2026

CVE-2026-92944: escape de sandbox crítico en vm2 para Node.js 26

Vulnerabilidad crítica (CVSS 9.3) en vm2 permite escapar del sandbox en Node.js 26. Qué es, a quién afecta y cómo protegerte.

Equipo de seguridad de OCIRIA

CVE-2026-92944: escape de sandbox crítico en vm2 para Node.js 26

En corto

Se ha publicado una vulnerabilidad crítica (CVE-2026-92944, CVSS 9.3) en la librería vm2, usada para ejecutar código en entornos aislados ("sandbox") dentro de aplicaciones Node.js [1]. El fallo permite que código no confiable escape del sandbox y tome el control del proceso anfitrión cuando se ejecuta sobre Node.js 26 [1][2]. Si tu empresa desarrolla o utiliza aplicaciones que ejecutan código de terceros o de usuarios mediante vm2, el primer paso hoy mismo es identificar dónde se usa esta librería y comprobar la versión instalada.

Qué es y por qué importa

vm2 es una herramienta muy utilizada por desarrolladores para ejecutar código JavaScript de origen no confiable dentro de un entorno supuestamente aislado del resto de la aplicación: plugins de usuarios, scripts personalizados, correctores de ejercicios de programación, motores de reglas, etc. La idea es que, pase lo que pase dentro de ese código, no pueda "salir" ni tocar el sistema real.

Según la descripción oficial del fallo, en las versiones de vm2 comprendidas entre la 3.10.2 y la 3.11.6, un mecanismo interno del motor V8 (el protector llamado PromiseThenLookupChain) queda desactualizado en Node.js 26, y esto permite que una función asíncrona bien construida por un atacante burle las protecciones del sandbox a través del método Promise.prototype.finally() [1]. El resultado es que el código "aislado" puede llegar a funciones internas del sistema y ejecutar código arbitrario con los privilegios del proceso principal [1][2].

El intel propio del radar OCIRIA, que monitoriza vulnerabilidades relevantes para infraestructuras de desarrollo y producción, clasifica este caso dentro de la categoría de ejecución remota de código y señala que su importancia radica precisamente en que rompe la premisa de aislamiento: si el sandbox falla, toda la aplicación —y potencialmente otros datos y servicios en el mismo proceso— queda expuesta [2].

Respecto a si existe constancia de explotación activa en el mundo real, a fecha de esta publicación la CVE no figura en el catálogo de vulnerabilidades explotadas conocidas (KEV) que mantiene la agencia estadounidense CISA [3]. Esto no significa que sea inofensiva —su puntuación de 9.3 la sitúa entre las más graves [1]—, sino que no hay evidencia documentada de campañas de ataque activas en este momento.

A quién afecta

Esta vulnerabilidad afecta a organizaciones que:

  • Desarrollan o mantienen aplicaciones Node.js que utilizan la librería vm2 para aislar ejecución de código de terceros o de usuarios.
  • Han actualizado o están desplegando entornos sobre Node.js 26, ya que el fallo se manifiesta específicamente en esa versión del runtime por un cambio en el motor V8 [1].
  • Operan plataformas de tipo "código como servicio": editores online, sandboxes de pruebas, motores de automatización, plugins o extensiones ejecutadas en servidor, correctores automáticos, etc.

La verdad estructurada que maneja OCIRIA no identifica vendors concretos afectados más allá del propio paquete vm2, por lo que recomendamos no asumir que un proveedor específico esté o no expuesto sin verificarlo directamente.

Cómo saber si eres vulnerable

No existe una forma genérica de "verlo a simple vista": depende de qué dependencias usa tu código y en qué entorno se ejecuta. Recomendamos:

1. Revisar el inventario de dependencias de vuestras aplicaciones Node.js (package.json / package-lock.json) en busca de vm2 y comprobar la versión exacta instalada.

2. Confirmar qué versión de Node.js ejecuta cada servicio en producción, prestando especial atención a los que ya corren sobre Node.js 26.

3. Comprobar la superficie expuesta de vuestros servicios y entornos de desarrollo, especialmente aquellos que aceptan o ejecutan código externo, para detectar puntos de exposición que no estén controlados o inventariados.

Cómo protegerte

  • Actualiza vm2 a una versión parcheada en cuanto el mantenedor del proyecto la publique; mientras tanto, considera limitar o deshabilitar temporalmente las funcionalidades que ejecutan código no confiable si el riesgo es alto [2].
  • Revisa el uso de sandboxes en general: dado que esta familia de fallos (escape de sandbox) suele repetirse, evalúa si vuestra arquitectura depende en exceso de un único mecanismo de aislamiento a nivel de proceso, o si conviene reforzarlo con aislamiento adicional (contenedores, máquinas virtuales ligeras, permisos de sistema operativo restringidos).
  • Audita el código ejecutado en sandbox procedente de fuentes no confiables: usuarios externos, plugins de terceros o integraciones poco controladas.
  • Monitoriza alertas de seguridad de las librerías críticas que forman parte de vuestra cadena de suministro de software, no solo de los frameworks principales.
  • Prioriza por exposición real: si vuestros servicios no ejecutan código de terceros en sandbox o no usáis Node.js 26, el riesgo inmediato es menor, pero conviene dejarlo documentado para revisiones futuras.

Preguntas frecuentes

¿Qué gravedad tiene esta vulnerabilidad?

Según NVD, tiene una puntuación CVSS de 9.3, calificada como crítica [1].

¿Está siendo explotada activamente esta vulnerabilidad?

A fecha de esta publicación, no consta en el catálogo de vulnerabilidades explotadas conocidas (KEV) de CISA, por lo que no hay evidencia documentada de explotación activa [3].

¿Afecta a cualquier aplicación Node.js?

No. Afecta específicamente a aplicaciones que usan la librería vm2 (versiones 3.10.2 a 3.11.6) para ejecutar código en sandbox, y el escape descrito se produce en el contexto de Node.js 26 [1].

¿Qué debo hacer si no sé si uso vm2?

Revisa el inventario de dependencias de tus proyectos Node.js y, si tienes dudas sobre la exposición real de tus sistemas, conviene hacer una revisión más amplia de tu superficie expuesta.

Fuentes

  • [1] https://nvd.nist.gov/vuln/detail/CVE-2026-92944
  • [2] https://github.com/advisories/GHSA-27g9-p43v-cw3v
  • [3] https://raw.githubusercontent.com/cisagov/kev-data/develop/known_exploited_vulnerabilities.json
Equipo de seguridad de OCIRIA Vigilancia de amenazas y respuesta · datos de nuestro radar en tiempo real Radar en vivo