vm2 Node.js sandbox — 12 critical CVEs (CVE-2026-43997 / 43999 / 44005 / 44006 / 44008 / 44009 et al.), sandbox escape to host RCE, upgrade to ≥ 3.11.4
From CTI Daily Brief — 2026-05-20 · published 2026-05-20 · view item permalink →
On 2026-05-19 BSI WID-SEC-2026-1583 was published flagging 12 critical sandbox-escape vulnerabilities in the vm2 Node.js library (BSI WID-SEC-2026-1583). vm2 is widely embedded in code editors, CI/CD pipelines, serverless function runners, workflow automation platforms (n8n and similar), and AI-agent frameworks that need to execute untrusted JavaScript. Highest-severity CVEs:
- CVE-2026-43997 (CVSS 10.0) — host-object access via code injection in the
BaseHandler.getPrototypeOftrap; attacker obtains a reference to the real hostObjectprototype and escapes all sandbox restrictions. Affects vm2 ≤ 3.10.5; patched in 3.11.0. - CVE-2026-44005 (CVSS 10.0) — prototype pollution via attacker-controlled JS in vm2 3.9.6 – 3.10.5; patched 3.11.0.
- CVE-2026-44006 (CVSS 10.0) — code injection via
BaseHandler.getPrototypeOf; patched 3.11.0. - CVE-2026-43999 (CVSS 9.9) —
NodeVMallow-list bypass: when the host explicitly permitschild_process, theModule._load()internal becomes reachable, letting sandboxed code load any built-in module includingchild_processfor OS command execution; patched 3.11.0. - CVE-2026-44008 / CVE-2026-44009 (CVSS 9.8 each) — null-proto exception exploitation bypassing
neutralizeArraySpeciesBatch(); affects ≤ 3.11.1, patched 3.11.2.
Public PoC code is circulating for several CVEs on GitHub. Kodem Security frames the AI-agent escalation path as "prompt → agent evaluates attacker-controlled JS via vm2 → sandbox escape → host OS RCE" — directly relevant where Swiss / EU public-sector digitisation projects use Node.js automation (n8n in particular) or custom LLM-agent pipelines that route generated code through vm2. The comprehensive fix per BSI WID-SEC-2026-1583 is vm2 ≥ 3.11.4; the prior patch progression (3.11.0 → 3.11.2) addresses the bulk of the 12-CVE cluster but BSI flags the comprehensive cut-over at 3.11.4 (see § 7 Verification Notes for the version discrepancy with The Hacker News). No configuration workaround exists. SBOM-scan every Node.js dependency tree (CI runners, automation platforms, AI agents) for vm2 < 3.11.4.
CVE Summary Table
| CVE | Product | CVSS | EPSS | KEV | Exploited | Patch | Source |
|---|---|---|---|---|---|---|---|
| CVE-2026-41091 | Microsoft Defender Engine | 7.8 | n/a | No | Yes | Engine ≥ 1.1.26040.8 (auto-update) | MSRC |
| CVE-2026-45584 | Microsoft Defender Engine | 8.1 | n/a | No | No | Engine ≥ 1.1.26040.8 (auto-update) | MSRC |
| CVE-2026-45585 | Windows BitLocker / WinRE (YellowKey) | 6.8 | n/a | No | No (PoC public) | No patch; MSRC interim mitigation | MSRC |
| CVE-2026-42097 | Sparx PCS / WebEA | 9.3 (CVSS4) | n/a | No | No (PoC public) | No vendor patch | CERT-PL |
| CVE-2026-42099 | Sparx PCS / WebEA | 7.7 (CVSS4) | n/a | No | No (PoC public) | No vendor patch | CERT-PL |
| CVE-2026-31635 | Linux kernel RxGK | 7.5 | n/a | No | No (PoC public) | Kernel 2026-04-25 stable patch | Moselwal |
| CVE-2026-43997 | vm2 Node.js library | 10.0 | n/a | No | No (PoC public) | vm2 ≥ 3.11.0 (3.11.2 for full set) | BSI WID-SEC-2026-1583 |
| CVE-2026-43999 | vm2 Node.js library (NodeVM) | 9.9 | n/a | No | No (PoC public) | vm2 ≥ 3.11.0 | BSI WID-SEC-2026-1583 |