High severity · published Jun 12, 2026
CVE-2026-47209
vm2: Bridge Proxy set trap ignores receiver parameter, enabling host object property injection via prototype chain
8.6
CVSS
0.3%
EPSS
No
On KEV
Description
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, the BaseHandler.set trap in bridge.js (line 1231) ignores the receiver parameter and unconditionally writes to the host target object. Per the Proxy set trap specification, when receiver !== proxy (e.g., when a child object inherits from the proxy via Object.create), the property assignment should create an own property on the receiver, not on the proxy target. The current implementation always calls otherReflectSet(object, key, value) against the host target, causing all inherited property writes to leak through to the host object. This bug provides an alternative attack vector for writing dangerous cross-realm Symbol keys (e.g., nodejs.util.promisify.custom) to host objects, bypassing any future per-trap isDangerousCrossRealmSymbol guard on the direct set path. This issue has been patched in version 3.11.4.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
High
Availability
None
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 21% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
VM
vm2 · patriksimek
< 3.11.4 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-47209
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-47209
github.com
https://github.com/patriksimek/vm2/commit/26d0318b5e6555be4b187ba05d6cf378ccecfe22
github.com
https://github.com/patriksimek/vm2/releases/tag/v3.11.4
github.com
https://github.com/patriksimek/vm2/security/advisories/GHSA-c4cf-2hgv-2qv6
More from vm2
10.0
CVE-2026-93606
vm2 before 3.12.1 Sandbox Escape via Promise Symbol.species
10.0
CVE-2026-93605
vm2 NodeVM before 3.12.1 Remote Code Execution via child_process
10.0
CVE-2026-93603
vm2 before 3.12.1 Sandbox Escape RCE via Non-Strict Host Function
10.0
CVE-2026-92960
vm2 before 3.11.6 Process-wide State Exposure via os and dns
10.0
CVE-2026-92956
vm2 3.10.1 through 3.11.6 Sandbox Escape via WebAssembly.compileStreaming
