---
title: "CVE-2026-92956: vm2 sandbox escape via WebAssembly.compileStreaming Promise species bypass"
url: https://erroneo.us/security/cve/CVE-2026-92956/
description: "CVE-2026-92956 (vm2 (npm)): vm2 versions 3.10.1 through 3.11.6 contain a sandbox escape reachable from a default new VM() sandbox when running on Node.js…"
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-92956"
kev: false
cvss: 10
epss: 0.00587
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-92956: vm2 sandbox escape via WebAssembly.compileStreaming Promise species bypass

**Signal:** Critical and remotely reachable. No known exploitation yet, but it is network-reachable without credentials. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 0.6% , percentile 47: FIRST’s model estimates a 0.6% chance of exploitation activity in the next 30 days, higher than 47% 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.
- Only applies if your dependency tree includes vm2 (npm) >= 3.10.1, <= 3.11.6, fixed in 3.11.7 . Check your lockfile, including transitive dependencies.
- 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.10.1 through 3.11.6 contain a sandbox escape reachable from a default new VM() sandbox when running on Node.js 26. WebAssembly.compileStreaming and WebAssembly.instantiateStreaming can produce a raw host-realm Promise that rejects with a host-realm error object; by controlling Symbol.species via Promise.prototype.finally, sandbox code receives that raw host error, walks from the host error constructor to the host Function constructor, and recovers the real host process object, gaining host Node.js capabilities (e.g. access to host modules such as fs) in the context of the process running the sandbox. No NodeVM, require permission, host object injection, or otherwise unsafe configuration is required. This is a bypass of the fix for GHSA-6j2x-vhqr-qr7q, which removed the JSPI entry points WebAssembly.promising and WebAssembly.Suspending. The issue is fixed in 3.11.7.

## Affected packages

- npm `vm2` >= 3.10.1, <= 3.11.6 → fixed: 3.11.7

## Affected products (CVE record)

- patriksimek vm2: 3.10.1 < 3.11.7

## Severity

- VulnCheck CVSS 4.0: 10 `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H`
- VulnCheck CVSS 3.1: 10 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H`
- GitHub CVSS 3.1: 10.0 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H`

## Exploitation

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

## Sources

- [GitHub Security Advisory (GHSA-wjwh-qqvp-g4p4)](https://github.com/patriksimek/vm2/security/advisories/GHSA-wjwh-qqvp-g4p4)
- [GitHub Advisory GHSA-wjwh-qqvp-g4p4](https://github.com/advisories/GHSA-wjwh-qqvp-g4p4)
- [CVE.org record CVE-2026-92956](https://www.cve.org/CVERecord?id=CVE-2026-92956)
- [NVD entry CVE-2026-92956](https://nvd.nist.gov/vuln/detail/CVE-2026-92956)
- [VulnCheck Advisory: vm2 3.10.1 through 3.11.6 Sandbox Escape via WebAssembly.compileStreaming](https://www.vulncheck.com/advisories/vm2-3.10.1-through-3.11.6-sandbox-escape-via-webassembly-compilestreaming)
- [github.com](https://github.com/patriksimek/vm2/commit/cb85599e4470afa308e7c807b5c6b3ec9bf58b18)
- [github.com](https://github.com/patriksimek/vm2/blob/415339f698f0d52d3c5ad358b12b79c8072d5b4b/lib/setup-sandbox.js#L510-L523)
- [github.com](https://github.com/patriksimek/vm2/releases/tag/v3.11.7)

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