Skip to content
OpenAdvisories
Critical · 10.0 Public exploit CVE-2026-92956 EUVD-2026-81605GHSA-538q-xxpg-6h4rGHSA-wjwh-qqvp-g4p4

vm2 3.10.1 through 3.11.6 Sandbox Escape via WebAssembly.compileStreaming

Published Sep 17, 2026 · Updated Sep 17, 2026 · Assigned by VulnCheck

Description

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 products

VendorProductAffectedFixed
patriksimek vm2 3.10.1 – < 3.11.7 3.11.7

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
npm vm2 >= 3.10.1, < 3.11.7 3.11.7 GHSA-wjwh-qqvp-g4p4

Advisories 1

References