Sandbox Escape in vm2 via NodeVM Configuration Misvalidation
An improper validation of the 'require' configuration in the vm2 Node.js sandbox allows attackers to bypass nesting restrictions and achieve arbitrary code execution by spawning an inner NodeVM with elevated privileges.
CVE search metadata
CVE search record: CVE-2026-92935. Severity: critical. CVSS: 9.0. EPSS: 0.67%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
CVE search record: CVE-2026-92944. Severity: critical. CVSS: 9.8. EPSS: 0.84%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
CVE search record: CVE-2026-92946. Severity: critical. CVSS: 10.0. EPSS: 0.86%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
CVE search record: CVE-2026-92942. Severity: high. CVSS: 7.5. EPSS: 0.49%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
CVE search record: CVE-2026-92958. Severity: high. CVSS: 8.5. EPSS: 0.38%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
CVE search record: CVE-2026-93604. Severity: high. CVSS: 7.2. EPSS: 0.34%. KEV: no. Product: vm2 (>= 3.11.4 and <= 3.11.6), vm2 (3.11.6), vm2 (3.11.3-3.11.6), vm2 (3.11.3 - 3.11.6), vm2 (3.10.2 - 3.11.6), vm2 (< 3.11.7), vm2 (>= 3.9.6, <= 3.11.6), vm2 (3.11.0-3.11.7), vm2 (3.10.1 - 3.11.6), vm2 (<= 3.11.6), vm2 (<= 3.12.0), vm2 (>= 3.11.4, <= 3.11.6). Brief: Sandbox Escape in vm2 via NodeVM Configuration Misvalidation. Brief link: https://feed.craftedsignal.io/briefs/2026-09-vm2-sandbox-escape/
What's new
The vm2 library, commonly used as a sandbox for executing untrusted Node.js code, contains a critical vulnerability (CVE-2026-92935) in its NodeVM constructor logic. In versions 3.11.4 through 3.11.6, the hasRealRequireConfig check fails to correctly validate the require option when provided as an array. Specifically, passing an array-shaped require object satisfies the guard meant to reject nesting without explicit configuration.
This logic flaw allows an attacker to manipulate the makeResolverFromLegacyOptions() function, leading to the creation of a resolver that exposes the host's vm2 module. By supplying a payload that initiates a NodeVM with nesting: true and a malicious require array, an attacker can escape the sandbox boundaries. Once escaped, the attacker can create an inner NodeVM with arbitrary builtin privileges, such as child_process, enabling the execution of arbitrary commands under the context of the host Node.js process. This vulnerability is addressed in vm2 version 3.11.7.
Impact
Successful exploitation allows for full sandbox escape and arbitrary code execution within the host environment. This impacts any application relying on vm2 for isolation of untrusted JavaScript, potentially leading to unauthorized data access, system-level command execution, and full compromise of the Node.js application process.
Recommendation
- Upgrade the vm2 dependency to version 3.11.7 or later across all applications utilizing this library to mitigate CVE-2026-92935.
- Audit all application code utilizing the
NodeVMconstructor to ensure therequireconfiguration is strictly defined as an object rather than an array. - Implement process-level sandboxing (e.g., containers, gVisor) as a secondary defense layer to limit the impact of a potential sandbox escape.
Immediate actions
Upgrade all instances of vm2 to version 3.11.7.
Mitigations
Upgrade to vm2 3.11.7.
CVE-2026-92935