
Se ha revelado una vulnerabilidad crítica de escape de sandbox en la popular biblioteca vm2 Node.js. Un exploit exitoso podría permitir al atacante ejecutar código arbitrario en el sistema operativo subyacente.
Esta vulnerabilidad se rastrea como CVE-2026-22709 y tiene una puntuación CVSS de 9,8 sobre 10,0 en el sistema de puntuación CVSS.
«A partir de la versión 3.10.0 de VM2, puede omitir la desinfección de la devolución de llamada Promise.prototype.luego Promise.prototype.catch», dijo el mantenedor de VM2, Patrik Simek. «Esto permite a un atacante escapar del entorno limitado y ejecutar código arbitrario».
vm2 es una biblioteca de Node.js que se utiliza para ejecutar código que no es de confianza dentro de un entorno de espacio seguro interceptando y representando objetos JavaScript y evitando que el código de espacio aislado acceda al entorno host.

La falla recién descubierta se debe a una desinfección inadecuada de los controladores de Promise por parte de la biblioteca, lo que crea vectores de escape que permiten la ejecución de código arbitrario fuera de los límites del sandbox.
«La idea clave es que las funciones asincrónicas en JavaScript devuelven un objeto ‘globalPromise’ en lugar de un objeto ‘localPromise’, porque ‘globalPromise.prototype.then’ y ‘globalPromise.prototype.catch’ (a diferencia de ‘localPromise’) no se desinfectan adecuadamente», dijeron los investigadores de Endor Labs Peyton Kennedy y Cris Staicu.
CVE-2026-22709 se soluciona en vm2 versión 3.10.2, la última de un flujo constante de escapes de sandbox que han plagado la biblioteca en los últimos años. Esto incluye CVE-2022-36067, CVE-2023-29017, CVE-2023-29199, CVE-2023-30547, CVE-2023-32314, CVE-2023-37466 y CVE-2023-37903.
Debido al descubrimiento de CVE-2023-37903 en julio de 2023, Simek anunció la cancelación del proyecto. Sin embargo, estas referencias se eliminaron del último archivo README disponible en el repositorio de GitHub. La página de seguridad también se actualizó en octubre de 2025 para indicar que la versión VM2 3.x se mantiene activamente.
Sin embargo, los mantenedores de vm2 también reconocen que es probable que se descubran nuevas derivaciones en el futuro e instan a los usuarios a mantener sus bibliotecas actualizadas y considerar otras alternativas sólidas, como aislamiento-vm, para garantizar un aislamiento más sólido.

«En lugar de confiar en el modelo VM problemático, el sucesor de VM2, el VM aislado, se basa en la interfaz Isolate nativa de V8, que proporciona una base más sólida. Pero aún así, los administradores de VM2 enfatizan la importancia del aislamiento y de hecho alientan a Docker, que tiene una separación lógica entre componentes», dijo Semgrep.
Dada la gravedad de la falla, recomendamos actualizar a la última versión (3.10.3), que incluye correcciones adicionales de escape del sandbox.
Source link
