Una vulnerabilidad crítica en la popular biblioteca de sandboxing para Node.js, vm2, permite a los atacantes escapar del entorno aislado y ejecutar código arbitrario en el sistema anfitrión. La falla de seguridad, registrada como CVE-2026-26956, ha sido confirmada en vm2 versión 3.10.4, aunque versiones anteriores también podrían ser vulnerables. Ya se ha publicado código de explotación (PoC).

Según el aviso de seguridad del mantenedor, el problema solo afecta a entornos con Node.js 25 (confirmado en Node.js 25.6.1) que tengan habilitado el manejo de excepciones de WebAssembly y soporte JSTag. vm2 es una biblioteca de código abierto utilizada para ejecutar código JavaScript no confiable dentro de un entorno restringido, comúnmente empleada por plataformas de codificación en línea, herramientas de automatización y aplicaciones SaaS que ejecutan scripts proporcionados por el usuario.

La biblioteca intenta aislar el código del sandbox del sistema anfitrión y bloquear el acceso a APIs sensibles de Node.js como process y el sistema de archivos. vm2 cuenta con más de 1.3 millones de descargas semanales en npm, el gestor de paquetes predeterminado de Node.js.

CVE-2026-26956 se origina en el manejo erróneo de excepciones que cruzan entre el entorno aislado y el anfitrión. El aviso explica que vm2 normalmente se basa en protecciones a nivel de JavaScript que salvaguardan contra errores del host y Proxies puente que envuelven objetos entre contextos, todo ejecutándose dentro de JavaScript. Sin embargo, el manejo de excepciones de WebAssembly puede interceptar errores de JavaScript a un nivel inferior dentro del motor V8 de Google, evadiendo las defensas de seguridad basadas en JavaScript de vm2.

Al provocar un TypeError especialmente diseñado mediante la conversión Symbol-to-string, los atacantes pueden filtrar un objeto de error del lado del host de vuelta al sandbox sin ser sanitizado por vm2. Dado que el objeto filtrado se origina en el entorno anfitrión, los atacantes pueden abusar de su cadena de constructores para recuperar el acceso a los internos de Node.js, como el objeto process, lo que finalmente permite la ejecución arbitraria de comandos en el sistema anfitrión.

El aviso del mantenedor incluye un PoC que demuestra la ejecución remota de código en la máquina anfitriona. Se recomienda a los usuarios de vm2 actualizar a la versión 3.10.5 o posterior (la última es 3.11.2) lo antes posible para mitigar el riesgo de explotación de CVE-2026-26956. A principios de año, vm2 se vio afectado por otra falla crítica de escape del sandbox, CVE-2026-22709, que también podía llevar a ejecución de código arbitrario. Fallas anteriores incluyen CVE-2023-30547, CVE-2023-29017 y CVE-2022-36067, lo que refleja el desafío de aislar código no confiable de forma segura en entornos JavaScript.

image
image
article image
article image