ZeroHour

CVE-2026-93605

moderate1· 1 read

Sandbox Escape in vm2 NodeVM via Omitted child_process Builtin

CVSS 4.0
10.0 critical
EPSS
Published
()
Modified
AI analysis

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.

Affected
vm2 NodeVM (Node.js sandbox library)All versions before 3.12.1 when NodeVM is configured with builtin:['*'] or with child_process explicitly allowed
Estimated exposure
moderate≈10,000–100,000 deployments (vm2 has historically seen hundreds of thousands of npm weekly downloads; only the subset running NodeVM with builtin:['*'] or… — vm2 is a widely used npm sandbox library with historically large weekly download volume, but the flaw requires the specific permissive NodeVM builtin configuration, so only a fraction of its install base is plausibly exposed.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

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 news

No ingested article mentions this CVE yet.