CVE-2026-43999

vm2: NodeVM builtin allowlist bypass via `module` builtin's `Module._load` allows sandbox escape

State
Published
Severity
9.9 Critical
Published
May 13, 2026
Updated
Sep 7, 2026
Reserved
May 4, 2026

Read the record on cve.org

Description

vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, NodeVM's builtin allowlist can be bypassed when the module builtin is allowed (including via the '*' wildcard). The module builtin exposes Node's Module._load(), which loads any module by name directly in the host context, completely bypassing vm2's builtin restriction. This allows sandboxed code to load excluded builtins like child_process and achieve remote code execution. This vulnerability is fixed in 3.11.0.

Scores

CVSSScoreVectorSource
3.19.9 CriticalCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HGitHub_M
3.19.9 CriticalCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:Hredhat-SADP

Weaknesses

  • CWE-863 Incorrect Authorization
  • CWE-829 Inclusion of Functionality from Untrusted Control Sphere

Affected Products

ProductVersions
vm2patriksimek
  • < 3.11.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.