A pesar de los intentos previos de descontinuación, la popular librería de sandboxing vuelve a la vida con un fallo de severidad 9.8 que permite a código malicioso romper el aislamiento y ejecutar comandos en el sistema operativo.
Es la historia de nunca acabar para la seguridad en JavaScript. Hoy 28 de enero de 2026, el descubrimiento de una nueva vulnerabilidad crítica de “Sandbox Escape” en vm2, la librería de Node.js ampliamente utilizada para ejecutar código no confiable de forma segura.
Rastreada como CVE-2026-22709, la falla ha recibido una puntuación casi perfecta de 9.8 sobre 10 (Crítica). Esto significa que cualquier aplicación que utilice vm2 para ejecutar scripts de usuarios (como bots de Discord, editores de código en la nube o herramientas de automatización) está en riesgo inmediato de Ejecución Remota de Código (RCE) en el servidor anfitrión.
El Fallo Técnico: Promesas Rotas
El problema reside en cómo la librería maneja las funciones asíncronas y los objetos “Promise”.
- El Mecanismo: Según los investigadores, el fallo se origina porque las funciones asíncronas en JavaScript devuelven objetos globalPromise en lugar de localPromise.
- La Brecha: Mientras que vm2 sanitizaba correctamente los manejadores de promesas locales, olvidó aplicar la misma limpieza a globalPromise.prototype.then y globalPromise.prototype.catch.
- El Escape: Un atacante puede aprovechar esta inconsistencia para eludir los proxies de seguridad de la librería, acceder al entorno del host y ejecutar comandos de shell arbitrarios, saliéndose totalmente de la “jaula”.
Un Proyecto “Zombi”
La situación de vm2 es confusa y preocupante para la comunidad de desarrolladores.
- Historia: En julio de 2023, tras una oleada de fallos similares (CVE-2023-30547, CVE-2023-37903, etc.), el mantenedor principal anunció que el proyecto se descontinuaba porque la arquitectura no podía asegurarse correctamente.
- Resurrección: Sin embargo, en octubre de 2025, el repositorio se actualizó para indicar que las versiones 3.x volvían a tener mantenimiento activo.
- Realidad: Esta nueva vulnerabilidad demuestra que los problemas arquitectónicos de fondo persisten. Como señala Semgrep, confiar en el módulo vm de Node.js (sobre el que se basa vm2) para seguridad fuerte es inherentemente riesgoso.
Solución y Alternativas
El mantenedor, Patrik Simek, ha lanzado la versión 3.10.2 (y posteriormente la 3.10.3) para parchar este agujero específico.
Recomendación de Seguridad:
- Parchear: Si es absolutamente necesario seguir usando vm2, actualiza a la versión 3.10.3 inmediatamente.
- Migrar: La recomendación de la industria es clara: deja de usar vm2.
- Para aislamiento fuerte de JavaScript, utiliza isolated-vm (que usa la API Isolate nativa de V8).
- Para máxima seguridad, ejecuta el código no confiable en contenedores efímeros (como Docker o Firecracker MicroVMs) que proporcionen aislamiento a nivel de sistema operativo, no solo a nivel de aplicación.



