miércoles, febrero 4, 2026

La falla crítica de vm2 Node.js permite el escape de Sandbox y la ejecución de código arbitrario

TecnologíaLa falla crítica de vm2 Node.js permite el escape de Sandbox y la ejecución de código arbitrario

Se ha revelado una vulnerabilidad crítica de escape del sandbox en la popular biblioteca vm2 Node.js que, si se explota con éxito, podría permitir a los atacantes ejecutar código arbitrario en el sistema operativo subyacente.

La vulnerabilidad, rastreada como CVE-2026-22709tiene una puntuación CVSS de 9,8 sobre 10,0 en el sistema de puntuación CVSS.

«En vm2 para la versión 3.10.0, se puede omitir la desinfección de devolución de llamada de Promise.prototype.then Promise.prototype.catch», dijo el mantenedor de vm2, Patrik Simek. «Esto permite a los atacantes 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 seguro mediante la interceptación y el proxy de objetos JavaScript para evitar que el código aislado acceda al entorno host.

La falla recientemente descubierta se debe a la desinfección inadecuada de los controladores Promise por parte de la biblioteca, lo que crea un vector de escape que resulta en la ejecución de código arbitrario fuera de los límites del sandbox.

«La idea crítica es que las funciones asíncronas en JavaScript devuelven objetos `globalPromise`, no objetos `localPromise`. Dado que `globalPromise.prototype.then` y `globalPromise.prototype.catch` no están adecuadamente desinfectados (a diferencia de `localPromise`)», dijeron los investigadores de Endor Labs, Peyton Kennedy y Cris Staicu.

Si bien CVE-2026-22709 se solucionó en vm2 versión 3.10.2, es el último de un flujo constante de escapes de sandbox que han afectado a 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.

El descubrimiento de CVE-2023-37903 en julio de 2023 también llevó a Simek a anunciar que el proyecto se suspendería. Sin embargo, desde entonces estas referencias se han eliminado del último archivo README disponible en su repositorio de GitHub. La página de Seguridad también se actualizó a partir de octubre de 2025 para mencionar que las versiones vm2 3.x se están manteniendo activamente.

Sin embargo, el responsable de vm2 también reconoció que es probable que se descubran nuevas derivaciones en el futuro, instando a los usuarios a asegurarse de mantener la biblioteca actualizada y considerar otras alternativas sólidas, como Insulated-vm, para obtener garantías de aislamiento más sólidas.

«En lugar de confiar en el modelo vm problemático, el sucesor de vm2, aislado-vm se basa en la interfaz Isolate nativa de V8, que ofrece una base más sólida, pero incluso entonces, los mantenedores de vm2 enfatizan la importancia del aislamiento y de hecho recomiendan Docker con separación lógica entre componentes», dijo Semgrep.

A la luz de la importancia de la falla, se recomienda a los usuarios actualizar a la versión más reciente (3.10.3), que viene con correcciones para escapes adicionales de la zona de pruebas.

Artículos más populares