A critical sandbox-escape vulnerability in the popular Node.js sandbox library vm2 allows attackers to bypass isolation and execute arbitrary code on the host. Tracked as CVE-2026-22709 (CVSS v3.1 9.8, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), the issue stems from incomplete sanitization of Promise.prototype.then/Promise.prototype.catch callbacks in lib/setup-sandbox.js: local promise callbacks are sanitized, but global promise callbacks are not, and async functions return a globalPromise object that can be abused to reach unsanitized paths.
Public technical details describe an exploitation chain where an attacker leverages the unsanitized global promise catch behavior to obtain an error object’s constructor, traverse the prototype chain to the Function constructor, and then execute code outside the sandbox (including loading Node modules such as child_process to run system commands). The vulnerability affects vm2 versions prior to 3.10.2 (with some reporting noting exposure through 3.10.0 and below), and vm2 3.10.2 is identified as the fix; organizations running untrusted code via vm2 should prioritize upgrading and review any services that rely on vm2 for isolation.

See affected versions and whether adversaries are exploiting it.
5 events from the most recent confirmed update back to the earliest known activity.
After disclosure and the 3.10.2 fix, reporting highlighted vm2 3.10.3 as the latest recommended release, with claims it includes additional or all disclosed sandbox-escape fixes. Users were advised to upgrade beyond vulnerable versions immediately.
Subsequent reporting published exploit details showing how attackers could abuse unsanitized global Promise behavior, traverse to the Function constructor, and execute host commands such as via child_process.execSync. Multiple sources described proof-of-concept exploit chains and working demonstrations.
The vulnerability was publicly disclosed as CVE-2026-22709, affecting vm2 and allowing attackers to escape the Node.js sandbox and execute arbitrary code on the host. Reports describe the root cause as incomplete sanitization of Promise.prototype.then and Promise.prototype.catch when async functions return global Promise objects.
The vm2 maintainers released version 3.10.2 to fully address CVE-2026-22709, a sandbox escape caused by improper sanitization of Promise callback handling. The fix covers affected versions prior to 3.10.2 and is referenced by the release tag, fixing commit, and GitHub Security Advisory.
A partial mitigation for the vm2 sandbox escape vulnerability was released in version 3.10.1, but the issue was not fully resolved. Later reporting states the flaw remained exploitable until a subsequent release.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
See whether adversaries are exploiting this yet, and where the affected versions run in your environment.
7 references tracked. Mallory keeps watching after this page renders.
thecyberthrone.in
Open sourcescworld.com
Open sourcethehackernews.com
Open sourcecybersecuritynews.com
Open sourcecsoonline.com
Open sourcesecurityonline.info
Open sourcecvefeed.io
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.