CVE-2026-47137 — vm2 Sandbox Escape via nesting:true Bypass (RCE)
Detects exploitation of CVE-2026-47137, a critical sandbox escape vulnerability in the vm2 Node.js library (<=3.11.3). This bypass circumvents the CVE-2023-37903 patch by abusing the nesting:true configuration option without an explicit require, enabling full remote code execution from within a sandboxed context. CVSS 10.0.
Vulnerability Intelligence
Public PoCAffected Software
- Vendor
- npm
- Product
- vm2
- Versions
- <= 3.11.3
Weakness (CWE)
Timeline
- Disclosed
- May 29, 2026
References & Proof of Concept
- PoChttps://github.com/advisories/GHSA-m4wx-m65x-ghrr
- https://github.com/patriksimek/vm2/security/advisories/GHSA-m4wx-m65x-ghrr
- https://github.com/patriksimek/vm2/commit/01a7552add345d5a6862623884e6b79a85bf0568
- https://github.com/patriksimek/vm2/commit/86ab819f202c3a8dad88cef5705f2e416c5188d7
- https://github.com/patriksimek/vm2/releases/tag/v3.11.4
- https://nvd.nist.gov/vuln/detail/CVE-2026-47137
What is CVE-2026-47137 CVE-2026-47137 — vm2 Sandbox Escape via nesting:true Bypass (RCE)?
CVE-2026-47137 — vm2 Sandbox Escape via nesting:true Bypass (RCE) (CVE-2026-47137) maps to the Execution and Privilege Escalation and Lateral Movement tactics — the adversary is trying to run malicious code in MITRE ATT&CK.
This page provides production-ready detection logic for CVE-2026-47137 — vm2 Sandbox Escape via nesting:true Bypass (RCE), covering the data sources and telemetry it touches: Microsoft Defender for Endpoint, Microsoft Sentinel, Azure Monitor. The queries below are rated critical severity at high confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.
MITRE ATT&CK
union DeviceProcessEvents, DeviceFileEvents, DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("node", "node.exe", "nodejs")
| where (
(ProcessCommandLine has "vm2" and ProcessCommandLine has_any ("nesting", "sandbox", "VM", "require"))
or (InitiatingProcessCommandLine has "vm2" and InitiatingProcessCommandLine has_any ("nesting:true", "sandbox escape"))
or (FileName has_any ("vm2") and ActionType == "FileCreated" and FolderPath has "node_modules")
)
| extend SuspiciousChildProcess = iff(
ProcessCommandLine has_any ("child_process", "exec", "spawn", "execSync", "spawnSync", "execFileSync"),
true, false
)
| extend NetworkEgress = iff(
RemoteIPType == "Public" and ActionType == "NetworkConnectionSuccess",
true, false
)
| where SuspiciousChildProcess == true or NetworkEgress == true
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName,
InitiatingProcessCommandLine, ProcessCommandLine, RemoteIP, RemotePort,
FileName, FolderPath, ActionType, SuspiciousChildProcess, NetworkEgress
| sort by TimeGenerated desc Identifies Node.js processes loading vm2 that subsequently spawn child processes or initiate outbound network connections, which may indicate exploitation of the CVE-2026-47137 sandbox escape. Correlates process, file, and network telemetry.
Data Sources
Required Tables
False Positives
- Legitimate Node.js applications using vm2 for safe sandboxing that invoke child_process for valid build or test workflows
- CI/CD pipeline runners executing npm test suites that reference vm2 in test scaffolding
- Developer workstations running vm2-based tooling (e.g., code playgrounds) with expected network activity
- Automated security scanners or DAST tools that probe vm2-based endpoints and trigger benign child process spawns
Sigma rule & cross-platform mapping
The detection logic for CVE-2026-47137 — vm2 Sandbox Escape via nesting:true Bypass (RCE) (CVE-2026-47137) above is provided in a vendor-neutral
form so you can deploy it on any SIEM. The same logic is shipped here as native
KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the
following logsource:
logsource:
category: process_creation
product: windows Browse the community-maintained Sigma rules for this technique:
Platform-specific guides for CVE-2026-47137
References (6)
- https://github.com/patriksimek/vm2/security/advisories/GHSA-m4wx-m65x-ghrr
- https://github.com/patriksimek/vm2/commit/01a7552add345d5a6862623884e6b79a85bf0568
- https://github.com/patriksimek/vm2/commit/86ab819f202c3a8dad88cef5705f2e416c5188d7
- https://github.com/patriksimek/vm2/releases/tag/v3.11.4
- https://nvd.nist.gov/vuln/detail/CVE-2026-47137
- https://github.com/advisories/GHSA-m4wx-m65x-ghrr
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1vm2 nesting:true Sandbox Escape via CVE-2026-47137
Expected signal: Sysmon EventID 1 showing node process spawning with vm2 in command line; child_process.execSync call visible in process arguments; file creation event for /tmp/vm2_escape_proof.txt
- Test 2vm2 Vulnerable Version Installation and Verification
Expected signal: npm install process spawning with [email protected] argument; file creation events under /tmp/vm2_test/node_modules/vm2/; network connection to npm registry (registry.npmjs.org:443)
- Test 3vm2 Reverse Shell Simulation Post-Escape
Expected signal: Network connection from node process to 127.0.0.1:9999 (or configured beacon host); curl child process spawned from Node.js parent; DNS/HTTP request with CVE identifier in URI path
- Test 4vm2 nesting Bypass with Prototype Chain Traversal (Variant)
Expected signal: Node.js process with vm2 in command line; fs.writeFileSync call resulting in file creation event at /tmp/vm2_variant_proof.txt; no child process spawned in this variant
Unlock Pro Content
Get the full detection package for CVE-2026-47137 including response playbook, investigation guide, and atomic red team tests.