Skip to main content

vm2 CVE-2026-92933

| EUVDEUVD-2026-81583 MEDIUM
Information Exposure (CWE-200)
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit untrusted JS to NodeVM sandbox
  2. Exploit
    Invoke exposed util.getCallSites()
  3. Execution
    Read host call stack (paths, functions, lines)
  4. Impact
    Exfiltrate host layout for further attack

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two concrete prerequisites must both hold: (1) the host application must run attacker-controlled JavaScript inside vm2's NodeVM - the vulnerable util module is exposed by the DEFAULT builtin loader (defaultBuiltinLoaderUtil via Object.assign({}, util)) plus the deprecated sys alias, so no unusual builtin/denylist configuration is required; and (2) the host must be on Node.js >= 22.9, the version that introduced the util.getCallSites() stack-introspection API the exploit depends on. On Node.js < 22.9 the API is absent and the flaw is not exploitable. Impact is limited to disclosure of host stack metadata (absolute file paths, function names, line numbers) and does not by itself grant code execution or write access. This channel specifically bypasses the host-frame redaction added for GHSA-v27g-jcqj-v8rw, which only covered the Error.prepareStackTrace formatting path.

Impact

This is a genuine but low-to-moderate priority information-disclosure flaw, correctly rated below the RCE-class vm2 escapes. The vendor CVSS 4.0 6.9 vector (AV:N/AC:L/PR:N/UI:N) with VC:L and SC:L accurately reflects a low-confidentiality leak that crosses the sandbox boundary (subsequent-system impact) but causes no integrity (VI:N) or availability (VA:N) damage - consistent with CWE-200. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active or imminent exploitation; treat exploitation status as 'no public exploit identified at time of analysis.' The PR:N rating is meaningful only inside the vm2 threat model: the 'attacker' is the untrusted JavaScript the host application already chose to run in the sandbox, so 'unauthenticated' here means 'the sandboxed code itself,' not an anonymous network peer. Two real limiters cut against the raw score: exploitation requires Node.js >= 22.9 (for the util.getCallSites() API) and requires the application to actually execute attacker-controlled code in NodeVM. Impact is bounded - leaking host file paths, function names, and line numbers is reconnaissance that aids chaining to a heavier vm2 escape, not a standalone breach. No conflicting signals across sources; the description, CVSS 4.0 vector, and CWE-200 all agree on scope and impact.

Exploit ScenarioDerived

An application runs untrusted user-supplied JavaScript inside vm2's NodeVM on Node.js 22.9+. The sandboxed code calls util.getCallSites() (or the sys alias) and reads back the host process's full call stack - absolute filesystem paths, internal function names, and line numbers for both vm2's bridge internals and the embedding application's entrypoint. The attacker uses this leaked layout to map the host environment and prepare a follow-on sandbox-escape exploit. No public POC is referenced, and exploitation is trivial once untrusted code executes (AC:L, no user interaction).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 17, 2026

Information disclosure in vm2 through version 3.11.7 allows sandboxed Node.js code to read the host process's call stack metadata: NodeVM exposes the host util module as an unfiltered shallow copy and also exposes the deprecated sys alias, and on Node.js 22.9 or later this hands sandbox code util.getCallSites(), which returns absolute file paths, function names, and line numbers for vm2 bridge internals and the embedding application's entrypoint. Remote attackers are unauthenticated (CVSS PR:N), but exploitation requires the host application to actually execute attacker-controlled JavaScript inside NodeVM and to be running Node.js >= 22.9; the leak is read-only and grants no code execution or write access. Vendor-released patch: vm2 3.11.8. No confirmed active exploitation (no CISA KEV listing) and no public exploit code identified at time of analysis.

RemediationAI

Upgrade to vm2 3.11.8, the vendor-released fix, which is the primary and recommended remediation; consult the advisory at https://github.com/patriksimek/vm2/security/advisories/GHSA-r273-hxvj-fxhp for the exact change and validate the upgrade path against any local forks or patched builds. If an immediate upgrade is not possible, compensating controls are: run the host on Node.js earlier than 22.9, where util.getCallSites() is absent and the flaw is not exploitable (trade-off: forgoing newer Node.js features and security fixes, and this may break other dependencies); or remove the util module (and the deprecated sys alias) from the sandbox by supplying a custom builtin allowlist/loader that does not expose util at all (trade-off: any sandboxed script legitimately relying on util will break, so compatibility must be tested first). Because the leaked data is limited to host stack metadata - absolute paths, function names, and line numbers - reducing the disclosure value by minimizing sensitive path and filename information in the host environment offers only marginal additional protection. Monitor dependency manifests and lockfiles to confirm no application remains pinned to vm2 <= 3.11.7.

Affected VersionsENISA

vm2 0 <3.11.8

Affected Packages

npm vm2 fix: 3.11.8

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

vm2 is a sandbox library used to execute untrusted JavaScript inside a Node.js host process. Its default builtin loader constructs the sandbox-visible util module with Object.assign({}, util), which copies every enumerable property of the host module without any allowlist filtering, and the generic builtin loader additionally exposes the deprecated sys builtin that aliases host util. Node.js 22.9 introduced util.getCallSites(), a programmatic stack-introspection API; because that function is inherited by the shallow copy, sandboxed code can invoke it and obtain the host process's full call stack. This is a CWE-200 information-exposure flaw: the sensitive data is host-side path, symbol, and line-number metadata rather than a memory-safety or injection defect. The exposure is significant because it defeats the host-frame redaction that was introduced for GHSA-v27g-jcqj-v8rw, which only sanitized the Error.prepareStackTrace formatting channel and therefore does not cover this alternate introspection path. The affected product is tracked as cpe:2.3:a:patriksimek:vm2:*:*:*:*:*:*:*:*, with the vulnerable range being all versions up to and including 3.11.7.

Know when Vm2 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
vuln.today AI 5.8 MEDIUM

Sandboxed (untrusted) code needs no host privileges (PR:N) and trivially calls the API (AC:L); leak crosses the sandbox boundary (S:C) exposing only low-sensitivity host stack metadata (C:L), with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
Red Hat 5.8 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 17, 2026 - 15:17 EUVD

DescriptionCVE.org

vm2 is a sandbox for running untrusted Node.js code. In versions <= 3.11.7, NodeVM exposes the host util module to the sandbox as an unfiltered shallow copy (Object.assign({}, util) in defaultBuiltinLoaderUtil), and the deprecated sys builtin (an alias of host util) is exposed through the generic builtin loader. On Node.js >= 22.9 this hands sandboxed code util.getCallSites(), a programmatic stack-introspection API that returns the host process's full call stack, including absolute file paths, function names, and line numbers for vm2 bridge internals and the embedding application's entrypoint. This bypasses the host-frame redaction introduced for GHSA-v27g-jcqj-v8rw, which only applies to the Error.prepareStackTrace formatting channel. The issue is fixed in vm2 3.11.8.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular but deprecated Node.js sandbox library, niche runtime dependency
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Vm2

View all
CVE-2023-37466 CRITICAL POC
10.0 Jul 14

vm2 is an advanced vm/sandbox for Node.js. Rated critical severity (CVSS 10.0), this vulnerability is remotely exploitab

CVE-2023-32314 CRITICAL POC
10.0 May 15

vm2 is a sandbox that can run untrusted code with Node's built-in modules. Rated critical severity (CVSS 10.0), this vul

CVE-2023-30547 CRITICAL POC
10.0 Apr 17

vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Rated critical severity (CVSS 10.

CVE-2023-29199 CRITICAL POC
10.0 Apr 14

There exists a vulnerability in source code transformer (exception sanitization logic) of vm2 for versions up to 3.9.15,

CVE-2022-36067 CRITICAL POC
10.0 Sep 06

vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Rated critical severity (CVSS 10.

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2026-26956 CRITICAL POC
9.8 May 04

Full sandbox escape with arbitrary code execution allows remote attackers to break out of vm2's Node.js sandbox environm

CVE-2026-24120 CRITICAL POC
9.8 May 04

Sandbox escape in vm2 for Node.js allows remote unauthenticated attackers to execute arbitrary commands on the host syst

CVE-2026-45411 CRITICAL POC
9.8 May 13

Sandbox escape in vm2 (patriksimek/vm2) versions prior to 3.11.3 enables remote code execution on the host Node.js proce

CVE-2026-22709 CRITICAL POC
9.8 Jan 26

Sandbox escape in vm2 Node.js sandbox before 3.10.2 via Promise.prototype.then/catch callback sanitization bypass. PoC a

CVE-2023-29017 CRITICAL POC
9.8 Apr 06

vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Rated critical severity (CVSS 9.8

CVE-2022-25893 CRITICAL POC
9.8 Dec 21

The package vm2 before 3.9.10 are vulnerable to Arbitrary Code Execution due to the usage of prototype lookup for the We

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy