Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
AC:H because it needs the non-default crypto builtin plus an attacker native library already on disk; PR:N as the vm2 model grants code-submission without auth; S:C for the sandbox escape with full host code execution.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
4DescriptionCVE.org
vm2 3.11.3 through 3.11.6 exposes the host Node.js crypto module to a NodeVM sandbox when the crypto builtin is allowed. The module is presented via a recursive read-only proxy, but its callable exports still execute with host-process authority. Sandboxed JavaScript can therefore call crypto.setEngine() with a filesystem path to an attacker-supplied native library (for example, one bundled in an untrusted plugin package already written to disk); OpenSSL asks the operating-system dynamic loader to load the file, and the library's constructor executes native code in the host process before engine-symbol validation rejects it. Exploitation requires only the crypto builtin and does not require fs, process, module, child_process, worker_threads, vm, or inspector access, resulting in a sandbox escape and arbitrary native code execution. Fixed in 3.11.7.
Articles & Coverage 1
AnalysisAI
Sandbox escape and arbitrary native code execution in vm2 3.11.3 through 3.11.6 occurs when a NodeVM sandbox is configured to allow the host crypto builtin: sandboxed JavaScript can reach crypto.setEngine() and hand it a filesystem path pointing at an attacker-supplied shared library (for example one shipped inside an untrusted plugin package already unpacked to disk), which OpenSSL passes to the operating system's dynamic loader and whose constructor then executes in the host process. Exploitation needs the crypto builtin alone - fs, process, module, child_process, worker_threads, vm and inspector access are all unnecessary - and there is no public exploit code or confirmed active exploitation (no CISA KEV listing) at time of analysis, though the reporter-assigned score of 9.4 reflects the severity if those prerequisites are met. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires ALL of: (1) vm2 NodeVM configured to allow the 'crypto' host builtin (non-default exposure); (2) the application running attacker-supplied/untrusted JavaScript inside the sandbox (vm2's core threat model); and (3) an attacker-controlled native shared library already present on the host filesystem - e.g. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | This is a genuine high-severity issue within its threat model but its real-world urgency is gated. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade vm2 to 3.11.7 or later, the vendor-released patch that closes the setEngine() escape path (see the GitHub advisory GHSA-46pr-c5wc-xffx and the VulnCheck advisory for confirmation). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory every application, service, and build pipeline that depends on vm2 versions 3.11.3 through 3.11.6, and for each NodeVM instance verify whether 'crypto' is present in the allowed builtins list; where it is, remove it immediately or disable the sandboxed code path, since that single configuration change closes the escape vector. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
Same weakness CWE-114 – Process Control
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-81589
GHSA-6jgm-4w45-vh8j