CVE-2026-47135
Deferred Deferred - Pending Action
Prototype Pollution in vm2 Sandbox

Publication date: 2026-06-12

Last updated on: 2026-06-12

Assigner: GitHub, Inc.

Description
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, Symbol.for override in setup-sandbox.js only intercepts 2 of 9 dangerous Node.js cross-realm symbols. Combined with the bridge's set/defineProperty/deleteProperty traps having no isDangerousCrossRealmSymbol key check, sandbox code can obtain real cross-realm symbols, write them to host objects, and control host-side behavior β€” verified with a full util.promisify hijack chain. This issue has been patched in version 3.11.4.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-12
Last Modified
2026-06-12
Generated
2026-06-12
AI Q&A
2026-06-12
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
patriksimek vm2 to 3.11.4 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-693 The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

CVE-2026-47135 is a high-severity sandbox escape vulnerability in the vm2 library that allows sandboxed code to manipulate host-side behavior by exploiting unblocked cross-realm symbols. This can lead to semantic confusion, data integrity issues, and defense bypasses.

While the vulnerability does not directly enable remote code execution, the ability to control host-side behavior and manipulate internal Node.js symbols could potentially lead to unauthorized data access or modification.

Such unauthorized access or manipulation could impact compliance with standards and regulations like GDPR or HIPAA, which require protection of data integrity, confidentiality, and prevention of unauthorized access.

Therefore, failure to patch this vulnerability could increase the risk of non-compliance due to potential data breaches or unauthorized control over sensitive operations within applications using vm2.

Executive Summary

CVE-2026-47135 is a high-severity vulnerability in the vm2 sandbox library for Node.js, present in versions prior to 3.11.4. The issue arises because the sandbox's override of Symbol.for only intercepts 2 out of 9 dangerous Node.js cross-realm symbols, allowing sandboxed code to access real cross-realm symbols. Additionally, the bridge's write traps (set, defineProperty, deleteProperty) lack checks for dangerous symbols, enabling sandbox code to write these symbols to host objects and manipulate host-side behavior.

This vulnerability allows attackers to hijack internal Node.js mechanisms such as util.promisify and manipulate stream branding, leading to sandbox escape and control over host behavior. The root cause is incomplete filtering of dangerous symbols and missing validation in the bridge's write traps.

Impact Analysis

This vulnerability can lead to sandbox escape, allowing malicious sandboxed code to manipulate host-side Node.js internals. Specifically, attackers can hijack important functions like util.promisify, alter stream branding, and perform unauthorized actions on host objects.

The impact includes semantic confusion, data integrity issues, and bypassing security defenses within the host environment. Although it does not directly enable remote code execution, it can be used as a stepping stone for further attacks or to compromise the integrity and behavior of the host application.

Detection Guidance

Detection of this vulnerability involves identifying if the vm2 library version in use is prior to 3.11.4, as these versions contain the sandbox escape issue.

Specifically, you can check the installed vm2 version in your Node.js environment by running the command:

  • npm list vm2

If the version is earlier than 3.11.4, your system is vulnerable.

Additionally, monitoring for suspicious sandbox behavior such as unexpected access to Node.js internal symbols (e.g., util.promisify hijack attempts) or unusual host object modifications could indicate exploitation attempts, but no specific detection commands are provided in the resources.

Mitigation Strategies

The primary mitigation step is to upgrade the vm2 library to version 3.11.4 or later, where the vulnerability has been fully patched.

This update includes comprehensive fixes such as blocking the entire nodejs.* Symbol.for namespace, adding checks for all nine dangerous cross-realm symbols in the bridge's write traps, and synchronizing dangerous symbol filters to prevent sandbox escape.

Additionally, reviewing and hardening NodeVM configurations by explicitly specifying require objects and avoiding nesting-based bypasses is recommended to prevent related security issues.

Consult the updated documentation and release notes for further hardening measures.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-47135. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart