Vulnerabilidades críticas exponen la librería Node.js vm2 a ataques de escape de sandbox
Una serie de vulnerabilidades críticas han sido descubiertas en la librería Node.js **vm2**, permitiendo potencialmente a los atacantes escapar del sandbox y ejecutar código arbitrario. Estas fallas resaltan los desafíos inherentes para aislar de forma segura código JavaScript no confiable.

**vm2** es una librería de código abierto diseñada para ejecutar código JavaScript no confiable dentro de un entorno de sandbox seguro. Logra esto interceptando y proxyando objetos JavaScript, con el objetivo de evitar que el código dentro del sandbox acceda al sistema anfitrión.
## Detalles de las Vulnerabilidades
Se han divulgado doce vulnerabilidades de seguridad críticas. Todas estas vulnerabilidades podrían ser explotadas por actores maliciosos para obtener acceso no autorizado y control sobre el sistema subyacente.
Aquí hay un desglose de las fallas identificadas:
* **CVE-2026-24118** (puntaje CVSS: 9.8): Escape del sandbox a través de `__lookupGetter__` permite la ejecución de código arbitrario en el anfitrión. Afecta a las versiones <= 3.10.4, parcheada en 3.11.0.
* **CVE-2026-24120** (puntaje CVSS: 9.8): Una omisión de CVE-2023-37466, que permite el escape del sandbox a través de la propiedad `species` de los objetos `promise`. Afecta a las versiones <= 3.10.3, parcheada en 3.10.5.
* **CVE-2026-24781** (puntaje CVSS: 9.8): Escape del sandbox a través de la función "inspect" que conduce a la ejecución de código arbitrario. Afecta a las versiones <= 3.10.3, parcheada en 3.11.0.
* **CVE-2026-26332** (puntaje CVSS: 9.8): Escape del sandbox a través de "SuppressedError" permite la ejecución de código arbitrario. Afecta a las versiones <= 3.10.4, parcheada en 3.11.0.
* **CVE-2026-26956** (puntaje CVSS: 9.8): Fallo del mecanismo de protección que conduce al escape del sandbox con ejecución de código arbitrario al desencadenar un `TypeError` producido por la coerción de `Symbol` a cadena. Afecta a la versión 3.10.4, parcheada en 3.10.5.
* **CVE-2026-43997** (puntaje CVSS: 10.0): La inyección de código permite obtener el Objeto del anfitrión y escapar del sandbox, lo que lleva a la ejecución de código arbitrario. Afecta a las versiones <= 3.10.5, parcheada en 3.11.0.
* **CVE-2026-43999** (puntaje CVSS: 9.9): La omisión de la lista blanca incorporada de NodeVM permite cargar `builtins` excluidos como `child_process` y lograr la ejecución remota de código. Afecta a la versión 3.10.5, parcheada en 3.11.0.
* **CVE-2026-44005** (puntaje CVSS: 10.0): Permite que JavaScript controlado por el atacante escape del sandbox y habilite la contaminación de prototipos. Afecta a las versiones 3.9.6-3.10.5, parcheada en 3.11.0.
* **CVE-2026-44006** (puntaje CVSS: 10.0): Inyección de código a través de `BaseHandler.getPrototypeOf` permite el escape del sandbox y la ejecución remota de código. Afecta a las versiones <= 3.10.5, parcheada en 3.11.0.
* **CVE-2026-44007** (puntaje CVSS: 9.1): El control de acceso inadecuado permite el escape del sandbox y la ejecución de comandos arbitrarios del sistema operativo. Afecta a las versiones <= 3.11.0, parcheada en 3.11.1.
* **CVE-2026-44008** (puntaje CVSS: 9.8): Escape del sandbox a través de `neutralizeArraySpeciesBatch()` permite la ejecución de comandos arbitrarios. Afecta a las versiones <= 3.11.1, parcheada en 3.11.2.
* **CVE-2026-44009** (puntaje CVSS: 9.8): Escape del sandbox a través de una excepción de `null proto` permite la ejecución de comandos arbitrarios. Afecta a las versiones <= 3.11.1, parcheada en 3.11.2.
## Remediación
Estas divulgaciones siguen al parcheo de **CVE-2026-22709** en enero, otra vulnerabilidad crítica de escape de sandbox. **Patrik Simek**, el mantenedor de **vm2**, ha reconocido los desafíos continuos para mantener un sandbox de JavaScript seguro y anticipa el descubrimiento de omisiones adicionales.
Se recomienda encarecidamente a los usuarios de **vm2** que actualicen a la última versión (3.11.2) para mitigar estos riesgos críticos.