---
title: "CVE-2026-22709: vm2 has a Sandbox Escape"
url: https://erroneo.us/security/cve/CVE-2026-22709/
description: "CVE-2026-22709 (vm2 (npm)): vm2 is an open source vm/sandbox for Node.js. In vm2 prior to version 3.10.2, Promise.prototype.then Promise.prototype.catch…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-01-26
date_modified: 2026-01-29
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-22709"
kev: false
cvss: 9.8
epss: 0.01289
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-22709: vm2 has a Sandbox Escape

**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 1.3% , percentile 70: FIRST’s model estimates a 1.3% chance of exploitation activity in the next 30 days, higher than 70% of all scored CVEs (moderate). 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, fixed in 3.10.2 . Check your lockfile, including transitive dependencies.

## What it is

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.

## Affected packages

- npm `vm2` <= 3.10.1 → fixed: 3.10.2

## Affected products (CVE record)

- patriksimek vm2: < 3.10.2

## Severity

- GitHub_M CVSS 3.1: 9.8 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
- GitHub CVSS 3.1: 9.8 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/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): 1.29% probability of exploitation activity in the next 30 days; percentile 70.

## Sources

- [GitHub Advisory GHSA-99p7-6v5w-7xg8](https://github.com/advisories/GHSA-99p7-6v5w-7xg8)
- [CVE.org record CVE-2026-22709](https://www.cve.org/CVERecord?id=CVE-2026-22709)
- [NVD entry CVE-2026-22709](https://nvd.nist.gov/vuln/detail/CVE-2026-22709)
- [github.com](https://github.com/patriksimek/vm2/security/advisories/GHSA-99p7-6v5w-7xg8)
- [github.com](https://github.com/patriksimek/vm2/commit/4b009c2d4b1131c01810c1205e641d614c322a29)
- [github.com](https://github.com/patriksimek/vm2/releases/tag/v3.10.2)

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