Skip to main content
← All vulnerabilities
CVE-2026-47210GHSA-6J2X-VHQR-QR7Q

vm2 sandbox escape via JSPI-backed Promise `.finally()` species bypass

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.11.4
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: yes
  • Technical impact: total

Summary

vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, a sandbox escape vulnerability in vm2 allows arbitrary code execution in the host process when untrusted code is executed with async support on runtimes exposing WebAssembly JSPI (WebAssembly.promising / WebAssembly.Suspending). In the tested configuration, a JSPI-backed Promise can reach Promise.prototype.finally() in a way that bypasses the expected Promise-species hardening and exposes a host-originated rejection object to attacker-controlled species logic, breaking the sandbox boundary. This issue has been patched in version 3.11.4.

Timeline

  1. CISA SSVC assessment

    Exploitation: poc · Automatable: yes · Technical impact: total

  2. CVE published
  3. Record last updated

Affected versions

  • patriksimek vm2

    fixed in 3.11.4

  • vm2npm

    fixed in 3.11.4

References 3

GitHub · patriksimek/vm2