Impact
A flaw in the Node.js sandbox library vm2 allows an attacker to obtain the host object from within the sandboxed context. By accessing the host object, an attacker can call methods such as HostObject.getOwnPropertySymbols to exploit internal symbols like Symbol(nodejs.util.inspect.custom), effectively escaping the sandbox and gaining unrestricted control over the host environment. This is a code injection type weakness, falling under CWE-94.
Affected Systems
The vulnerability exists in the patriksimek vm2 library for all releases prior to version 3.11.0. Applications that import older versions of vm2 and execute untrusted code are susceptible.
Risk and Exploitability
The CVSS score of 10 indicates a critical severity, and the absence of an EPSS score leaves the exact exploitation probability uncertain, though the vulnerability is not yet listed in the CISA KEV catalog. The likely attack vector is the execution of malicious JavaScript payloads within a vm2 sandbox; an attacker who can supply code to be run in the sandbox can trigger the escape. With the host object exposed, the attacker can execute arbitrary code on the host system, leading to full system compromise. Prompt remediation is advised to eliminate this risk.
OpenCVE Enrichment
Github GHSA