Impact
An attacker can exploit a flaw in vm2, an open‑source sandbox for Node.js, that allows a NodeVM instance to bypass its builtin allowlist when the 'module' builtin is permitted. In such a configuration, the module builtin exposes Node's own Module._load() function, which can load any module by name in the host process. The attacker can therefore import excluded built‑ins such as child_process and achieve remote code execution. The vulnerability is a direct exploitation of a CWE‑863 lack of proper access control in the allowlist mechanism.
Affected Systems
The vulnerability affects the vm2 package from patriksimek. Any version running prior to 3.11.0 is susceptible, regardless of allowlist configuration that permits the module builtin. Users who rely on vm2's built‑ins restrictions for sandboxing should verify the installed version and the allowlist contents.
Risk and Exploitability
The CVSS score of 9.9 indicates critical severity. EPSS is not available, but the vulnerability is not listed in CISA's KEV catalog, which suggests no known widespread exploitation yet. Nevertheless, the attack vector is likely local to applications that instantiate NodeVM with the module builtin allowed, allowing the attacker to run arbitrary Node code with host privileges.
OpenCVE Enrichment
Github GHSA