Detect CVE-2026-47140 — vm2 Builtin Denylist Bypass via process/inspector Leads to Host RCE in IBM QRadar
Detects exploitation of CVE-2026-47140, a critical sandbox escape in the npm vm2 package (versions <= 3.11.3). Attackers bypass the builtin module denylist using process and inspector/promises references to execute arbitrary code on the host Node.js process. CVSS 10.0. PoC is publicly available.
MITRE ATT&CK
QRadar Detection Query
SELECT
DATEFORMAT(starttime, 'YYYY-MM-dd HH:mm:ss') AS event_time,
sourceip,
destinationip,
username,
processname,
"Process Command Line" AS cmdline,
QIDNAME(qid) AS event_name,
logsourcename(logsourceid) AS log_source
FROM events
WHERE
LOGSOURCETYPENAME(devicetype) IN ('Microsoft Windows Security Event Log', 'Sysmon')
AND (processname ILIKE '%node%' OR processname ILIKE '%node.exe%')
AND (
"Process Command Line" ILIKE '%vm2%'
OR "Process Command Line" ILIKE '%NodeVM%'
OR "Process Command Line" ILIKE '%new VM%'
)
AND (
destinationip NOT INCIDR '10.0.0.0/8'
AND destinationip NOT INCIDR '172.16.0.0/12'
AND destinationip NOT INCIDR '192.168.0.0/16'
AND destinationip NOT INCIDR '127.0.0.0/8'
AND destinationip IS NOT NULL
)
AND DATEFORMAT(starttime, 'YYYY-MM-dd') = DATEFORMAT(NOW(), 'YYYY-MM-dd')
ORDER BY starttime DESC
LIMIT 500 QRadar AQL query identifying Node.js processes referencing vm2 that establish outbound connections to non-RFC1918 addresses, indicating possible post-sandbox-escape C2 or exfiltration.
Data Sources
Required Tables
False Positives & Tuning
- Node.js applications legitimately using vm2 with authorized external connectivity
- SaaS platforms that use vm2 for user-code sandboxing with expected external calls
- Development environments where vm2 is used alongside services requiring internet access
- Serverless functions using vm2 for isolation that make legitimate API calls
Other platforms for CVE-2026-47140
Testing Methodology
Validate this detection against 3 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 Sandbox Escape via inspector/promises — Host Code Execution
Expected signal: Sysmon/auditd will log: (1) node process launch with vm2 in path or arguments, (2) file creation event at /tmp/vm2_escape_poc.txt by the node process, (3) a child process or execSync call spawning sh/bash from within node
- Test 2vm2 Escape with Outbound Network Callback (Simulated C2 Beacon)
Expected signal: Network flow logs will show an outbound HTTP connection to example.com originating from the node process PID. EDR should capture the network connect event and correlate it to the parent node process with vm2 in its command line.
- Test 3vm2 Escape via process.binding — Enumerate Host Environment Secrets
Expected signal: File write event at /tmp/vm2_env_harvest.json attributed to node process. Process event showing node with potential vm2-related arguments. EDR may also capture the internal environment variable enumeration if it hooks process.env access.
References (5)
- https://github.com/patriksimek/vm2/security/advisories/GHSA-rp36-8xq3-r6c4
- https://github.com/patriksimek/vm2/commit/a1ed47a98d1cc36cb48c0d566d55889688e0b59b
- https://github.com/patriksimek/vm2/releases/tag/v3.11.4
- https://nvd.nist.gov/vuln/detail/CVE-2026-47140
- https://github.com/advisories/GHSA-rp36-8xq3-r6c4
Unlock Pro Content
Get the full detection package for CVE-2026-47140 including response playbook, investigation guide, and atomic red team tests.