CVE-2026-93605
moderate1· 1 readSandbox Escape in vm2 NodeVM via Omitted child_process Builtin
vm2 NodeVM versions before 3.12.1 fail to block the child_process module in the DANGEROUS_BUILTINS denylist, even though other host-spawning modules are blocked, allowing code running inside the sandbox to break out. The flaw is triggered when an attacker can execute JavaScript within a NodeVM instance that is configured with builtin:['*'] or that explicitly allows child_process; the attacker then requires child_process directly. Successful exploitation yields arbitrary command execution on the host system with the privileges of the Node.js process, with network-based attack vectors requiring no privileges or user interaction (CVSS 4.0 score 10.0, critical). Any application or service running untrusted code in vm2 NodeVM with a permissive builtin configuration before version 3.12.1 is affected. No public proof-of-concept, KEV listing, or confirmed in-the-wild exploitation is known; the issue was assigned by VulnCheck's CNA.
What to do: Upgrade vm2 to 3.12.1 or later. If upgrading is not immediately possible, do not use builtin:['*'] and remove child_process (and other host-spawning builtins) from the allowlist for any NodeVM running untrusted code. Audit whether your NodeVM instances execute attacker-controlled JavaScript with permissive builtin settings, and consider migrating to stronger isolation (e.g., separate processes or containers) given vm2's history of sandbox escapes.
| vm2 NodeVM (Node.js sandbox library) | All versions before 3.12.1 when NodeVM is configured with builtin:['*'] or with child_process explicitly allowed |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
vm2 NodeVM versions before 3.12.1 contain a sandbox escape vulnerability where the DANGEROUS_BUILTINS denylist omits child_process despite blocking other host-spawning modules. Attackers can require child_process and execute arbitrary commands on the host system when NodeVM is configured with builtin:['*'] or explicit child_process allowance.
- Weakness
- CWE-693
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.