CVE-2026-43997: patriksimek vm2 sandbox escape via host object leakage

CVE-2026-43997 · Severity: critical · CVSS 10 · Published 2026-05-13

vm2 is a Node.js library that runs untrusted code in a restricted sandbox environment. This vulnerability allows an attacker to escape the sandbox and execute arbitrary code on the host system by accessing internal host objects and leveraging symbol extraction techniques to bypass security controls.

Technologies: vm2 (npm), Red Hat Self-service automation portal. Vendors: npm, Red Hat.

Quick answers

Is CVE-2026-43997 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-43997 being exploited in the wild.
How severe is CVE-2026-43997?
Critical severity, with a CVSS score of 10, published 13 May 2026.
Which products and versions are affected?
vm2 (npm) <= 3.10.5, SEMVER:introduced=0,fixed=3.11.0; Red Hat Self-service automation portal 2.
Is there a fix for CVE-2026-43997?
Yes. vm2 (npm): upgrade to 3.11.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-43997 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-43997?
Check whether you run vm2 (npm) or Red Hat Self-service automation portal at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • vm2 (npm): upgrade to 3.11.0 or later
    npm install vm2@3.11.0

Technical details

vm2 contains a code-injection vulnerability (CWE-94) in its sandbox escape protections. The vulnerability stems from incomplete filtering of host object access; while commit ebcfe94 added some protections, they do not adequately prevent extraction of internal symbols and constructor access. An attacker can use techniques such as __lookupGetter__, Buffer.apply, and getOwnPropertySymbols on host objects to obtain Symbol(nodejs.util.inspect.custom) and forge custom inspect handlers. By combining this with WebAssembly.compileStreaming and the constructor property, arbitrary code execution can be achieved. The attack requires no authentication or user interaction—any code running within the vm2 sandbox can exploit this. A proof-of-concept demonstrates executing shell commands via process.getBuiltinModule('child_process').execSync. Version 3.11.0 includes fixes for this and related sandbox escape primitives.

Affected products

  • patriksimek vm2 <= 3.10.5

Identifiers

  • CVE-2026-43997
  • GHSA-47x8-96vw-5wg6

Timeline

  • 2026-05-07: disclosed
  • 2026-05-01: patched: Version 3.11.0 released with fixes
  • 2026-05-13: other: Published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.