Description
vm2 is an open source vm/sandbox for Node.js. From 3.9.6 to 3.10.5, vm2's bridge exposes mutable proxies for real host-realm intrinsic prototypes and then forwards sandbox writes into the underlying host objects with otherReflectSet() and otherReflectDefineProperty(), which lets attacker-controlled JavaScript running in a default VM or inherited NodeVM mutate shared host Object.prototype, Array.prototype, and Function.prototype from inside the sandbox This vulnerability is fixed in 3.11.0.
Published: 2026-05-13
Score: 10 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

vm2 is an open source VM/sandbox for Node.js. From versions 3.9.6 through 3.10.5 the bridge exposes mutable proxies that allow code executing in a default or inherited NodeVM to directly modify the shared host’s Object.prototype, Array.prototype, and Function.prototype via otherReflectSet and otherReflectDefineProperty. By altering these prototypes, an attacker can change fundamental JavaScript behavior used by the host application. This could affect logic, data validation, and control flow that relies on the original prototype definitions. The vulnerability was fixed in version 3.11.0.

Affected Systems

The affected product is patriksimek’s vm2 library. Versions 3.9.6 through 3.10.5 are impacted. The fix was released in 3.11.0. Any deployment of vm2 within this range without upgrading is affected.

Risk and Exploitability

The CVSS score of 10 marks the flaw as critical. The EPSS score is less than 1% (0.00831), indicating a low but non‑zero likelihood of exploitation. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves an application that supplies attacker‑controlled JavaScript to a default NodeVM or inherits a NodeVM, thereby using the exposed bridge to mutate host prototypes. Because the attacker can alter core JavaScript objects, exploitation could compromise the correctness and security of the host application if not mitigated.

Generated by OpenCVE AI on August 14, 2026 at 04:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade vm2 to version 3.11.0 or later to eliminate the exposed bridge vulnerability.
  • If an immediate upgrade is not possible, avoid creating default NodeVM instances that expose the bridge; instead, use a more restricted sandbox configuration or run vm2 in a separate process to isolate prototype modifications.
  • Implement runtime checks to detect changes to Object.prototype, Array.prototype, or Function.prototype, and trigger alerts or terminate the host if such modifications are observed.

Generated by OpenCVE AI on August 14, 2026 at 04:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-vwrp-x96c-mhwq vm2: Mutable Proxies for Host Intrinsic Prototypes Allows Sandbox Escape
History

Fri, 15 May 2026 10:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 14 May 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 14 May 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Vm2 Project
Vm2 Project vm2
CPEs cpe:2.3:a:vm2_project:vm2:*:*:*:*:*:node.js:*:*
Vendors & Products Vm2 Project
Vm2 Project vm2

Wed, 13 May 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Patriksimek
Patriksimek vm2
Vendors & Products Patriksimek
Patriksimek vm2

Wed, 13 May 2026 18:00:00 +0000

Type Values Removed Values Added
Description vm2 is an open source vm/sandbox for Node.js. From 3.9.6 to 3.10.5, vm2's bridge exposes mutable proxies for real host-realm intrinsic prototypes and then forwards sandbox writes into the underlying host objects with otherReflectSet() and otherReflectDefineProperty(), which lets attacker-controlled JavaScript running in a default VM or inherited NodeVM mutate shared host Object.prototype, Array.prototype, and Function.prototype from inside the sandbox This vulnerability is fixed in 3.11.0.
Title vm2: Sandbox escape
Weaknesses CWE-1321
CWE-94
References
Metrics cvssV3_1

{'score': 10, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-06T12:09:00.519Z

Reserved: 2026-05-04T21:24:36.505Z

Link: CVE-2026-44005

cve-icon Vulnrichment

Updated: 2026-06-30T03:16:21.723Z

cve-icon NVD

Status : Modified

Published: 2026-05-13T18:16:17.257

Modified: 2026-08-06T13:18:15.217

Link: CVE-2026-44005

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-14T04:30:17Z

Weaknesses
  • CWE-1321

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • CWE-653

    Improper Isolation or Compartmentalization

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')