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
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
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 3.1 | 9.9 Critical | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H | GitHub_M |
| 3.1 | 9.9 Critical | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H | redhat-SADP |
Weaknesses
Affected Products
| Product | Versions |
|---|---|
vm2patriksimek |
|
References
- https://github.com/patriksimek/vm2/security/advisories/GHSA-947f-4v7f-x2v8
- https://access.redhat.com/security/cve/CVE-2026-43999vdb-entry
- RHBZ#2477196issue-tracking
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-43999.json
- https://access.redhat.com/errata/RHSA-2026:50850vendor-advisory
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.