Home

Description

vm2 is an open source vm/sandbox for Node.js. In vm2 prior to version 3.10.2, `Promise.prototype.then` `Promise.prototype.catch` callback sanitization can be bypassed. This allows attackers to escape the sandbox and run arbitrary code. In lib/setup-sandbox.js, the callback function of `localPromise.prototype.then` is sanitized, but `globalPromise.prototype.then` is not sanitized. The return value of async functions is `globalPromise` object. Version 3.10.2 fixes the issue.

PUBLISHED Reserved 2026-01-08 | Published 2026-01-26 | Updated 2026-01-27 | Assigner GitHub_M




CRITICAL: 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Problem types

CWE-94: Improper Control of Generation of Code ('Code Injection')

CWE-913: Improper Control of Dynamically-Managed Code Resources

CWE-693: Protection Mechanism Failure

Product status

< 3.10.2
affected

References

github.com/...ek/vm2/security/advisories/GHSA-99p7-6v5w-7xg8

github.com/...ommit/4b009c2d4b1131c01810c1205e641d614c322a29

github.com/patriksimek/vm2/releases/tag/v3.10.2

cve.org (CVE-2026-22709)

nvd.nist.gov (CVE-2026-22709)

Download JSON