Impact
vm2 is a Node.js sandbox that blocks public network APIs when the builtin option is set to a wildcard. However, underscored internal modules _http_client and _http_server are not included in that restriction, allowing sandboxed code to make outbound HTTP requests or listen for incoming connections. This bypass removes isolation intended by the sandbox and grants the untrusted code network access. The weakness is classified as CWE‑693, improper restriction of execution privileges.
Affected Systems
patriksimek's vm2 library versions prior to 3.11.4. All releases before 3.11.4 permit sandboxed scripts to load internal HTTP modules, making them vulnerable.
Risk and Exploitability
The CVSS score is 8.6, EPSS less than 1 %, and the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the attacker to be able to execute code inside a NodeVM instance; once inside, the attacker can use the internal modules to send outbound traffic or accept inbound connections. The attack vector is therefore an application that employs vm2 to sandbox untrusted code while granting execution privileges to that code.
OpenCVE Enrichment
Github GHSA