Security Digest · Vulnerability record
CVE-2026-100723: vm2 before 3.12.2 Memory Disclosure via zlib Buffer Pool
vm2 before 3.12.2 does not apply its Buffer backing-store ownership invariant (byteOffset === 0 and buffer.byteLength === length) to Buffers returned from host builtin modules.
CVSS 6.9 Medium EPSS 0.3% · p23 Check exposure
Should you act?
Normal patch cycle
No exploitation signal; fix it in your next routine update if you are affected. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.
- Not in CISA KEV, but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 0.3%, percentile 23: FIRST’s model estimates a 0.3% chance of exploitation activity in the next 30 days, higher than 23% of all scored CVEs (low). 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.
- Editorial verdict: Check exposure. vm2: 22 Critical Sandbox Escapes, Fixed in 3.12.2 — If anything outside your trust boundary can get code into vm2, upgrade to 3.12.2 today and plan to move that code out of process; if vm2 only runs your own code, upgrade on a normal cycle.
What it is
vm2 before 3.12.2 does not apply its Buffer backing-store ownership invariant (byteOffset === 0 and buffer.byteLength === length) to Buffers returned from host builtin modules. When an application explicitly exposes Node's zlib module through NodeVM's builtin allowlist (require: { builtin: ['zlib'] }), zlib.deflateSync can return a Buffer backed by Node's shared small-buffer pool whose .buffer is the entire pool. Untrusted guest code can construct a full-width view of that ArrayBuffer (Buffer.from(result.buffer, 0, result.buffer.byteLength)) to read and modify bytes belonging to unrelated host buffers, disclosing and corrupting host-realm memory across the sandbox boundary.
Weakness type: CWE-200.
Product: patriksimek vm2 · Assigned by: VulnCheck · Published: 2026-09-27
Affected and fixed versions
| Vendor | Product | Affected versions (per CVE record) |
|---|---|---|
| patriksimek | vm2 | < 3.12.2 |
Severity scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| VulnCheck | 4.0 | 6.9 Medium | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N |
| VulnCheck | 3.1 | 7.5 High | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N |
- Attack vector: network (remotely reachable)
- Attack complexity: low
- Attack requirements: present (depends on deployment conditions)
- Privileges required: none (no login)
- User interaction: none
CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.
Exploitation and urgency
- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc, automatable no, technical impact partial.
- FIRST EPSS (model of 2026-10-21): 0.32% probability of exploitation activity in the next 30 days; percentile 23.
Timeline
- — erroneo.us brief: vm2: 22 Critical Sandbox Escapes, Fixed in 3.12.2
- — CVE record published by VulnCheck
- — CVE record last updated
Sources and references
Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.
Vendor and project advisories, patches
- GitHub Security Advisory (GHSA-489w-w794-jq94) github.com
- Patch Commit github.com
- Patch Commit github.com
Vulnerability records
- CVE.org record CVE-2026-100723 cve.org
- NVD entry CVE-2026-100723 nvd.nist.gov