---
title: "CVE-2026-92952: vm2 3.11.4 through 3.11.6 Sandbox Symbol Filtering Bypass"
url: https://erroneo.us/security/cve/CVE-2026-92952/
description: "CVE-2026-92952 (patriksimek vm2): vm2 versions 3.11.4 through 3.11.6 incompletely filter Node.js registered internal symbols across the sandbox boundary.…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-09-17
date_modified: 2026-10-07
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-92952"
kev: false
cvss: 8.9
epss: 0.00461
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-92952: vm2 3.11.4 through 3.11.6 Sandbox Symbol Filtering Bypass

**Signal:** Normal patch cycle. No exploitation signal; fix it in your next routine update if you are affected. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- Not in CISA KEV , but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 0.5% , percentile 39: FIRST’s model estimates a 0.5% chance of exploitation activity in the next 30 days, higher than 39% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Editorial verdict: Check exposure. vm2: 22 Critical Sandbox Escapes, Fixed in 3.12.2 — If anything outside your trust boundary can get code into vm2, upgrade to 3.12.2 today and plan to move that code out of process; if vm2 only runs your own code, upgrade on a normal cycle.

## What it is

vm2 versions 3.11.4 through 3.11.6 incompletely filter Node.js registered internal symbols across the sandbox boundary. The extraction filters in lib/setup-sandbox.js and the cross-realm symbol checks and write traps in lib/bridge.js use a fixed list of known dangerous registered symbols that omits nodejs.stream.disturbed and nodejs.stream.errored, which are exposed on host WebStream prototypes on newer Node.js releases (validated on Node.js v25.8.0). When the embedder exposes a host WebStream object and the host stream/web module to the sandbox, sandbox code can obtain the real host symbols via Object.getOwnPropertySymbols(streamWeb.ReadableStream.prototype) and use them as write keys on host stream objects, corrupting host-visible stream state — for example making stream.Readable.isDisturbed() return false for an already-consumed stream. This can bypass host logic that relies on Node's public stream-state helpers to enforce one-shot body consumption, reject errored streams, or decide whether a stream is safe to hand to another component. It is not a host code-execution primitive in the reported proof of vulnerability. This is an incomplete fix for the earlier nodejs. symbol filtering issue. Fixed in vm2 3.11.7.

## Affected products (CVE record)

- patriksimek vm2: 3.11.4 < 3.11.7

## Severity

- VulnCheck CVSS 4.0: 8.9 `CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N`
- VulnCheck CVSS 3.1: 6.8 `CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc , automatable no , technical impact partial .
- FIRST EPSS (model of 2026-10-21): 0.46% probability of exploitation activity in the next 30 days; percentile 39.

## Sources

- [GitHub Security Advisory (GHSA-jf8q-945g-9q4c)](https://github.com/patriksimek/vm2/security/advisories/GHSA-jf8q-945g-9q4c)
- [CVE.org record CVE-2026-92952](https://www.cve.org/CVERecord?id=CVE-2026-92952)
- [NVD entry CVE-2026-92952](https://nvd.nist.gov/vuln/detail/CVE-2026-92952)
- [VulnCheck Advisory: vm2 3.11.4 through 3.11.6 Sandbox Symbol Filtering Bypass](https://www.vulncheck.com/advisories/vm2-3.11.4-through-3.11.6-sandbox-symbol-filtering-bypass)

---
Source page: https://erroneo.us/security/cve/CVE-2026-92952/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
