GitHub Advisoryadvisory · npm

GHSA-fcqc-726x-5wfc vm2: Sandboxed code can read and write host-realm memory via Node's shared Buffer pool

CRITICAL Published 2026-10-05 Modified 2026-10-05 Official page ↗
Aliases
CVE-2026-92947
Ecosystem
npm
Packages
vm2
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
Weaknesses
CWE-200, CWE-653, CWE-668
Reviewed
2026-10-05

Affected packages

• npm vm2: < 3.11.7 → fixed in 3.11.7

Description

Summary Sandboxed code is able to disclose host memory used by small allocations by `Buffer.from`, `Buffer.concat`. Details vm2 exposes `Buffer` object to sandboxed code by default. Small `Buffer` allocations (for example, Buffer.allocUnsafe(), Buffer.from(array), Buffer.from(string), and Buffer.concat()) use the same Buffer pool, which is shared with the sandbox. This allows sandboxed code to disclose host memory used by the functions listed above. PoC Tested against `[email protected]` in the node REPL. ```javascript Buffer.from('host-memory-should-not-leak-to-sandbox') new (require('vm2').VM)().run(`Buffer.from(Buffer.from([0]).buffer, 0, Buffer.from([0]).buffer.byteLength).toString('ascii')`) ``` Impact Since sandbox acquires an ArrayBuffer that is used by the host, it can disclose sensitive data going through functions mentioned above and even write to these buffers, which can lead to sensitive data exposure and potentially denial-of-service.

Related

Alias · CVE (1)

  • CVE-2026-92947 vm2 before 3.11.7 exposes Node's shared Buffer pool to sandboxed code, allowing disclosure of host memory used by Buffer.from,… vulnerability

Weakness · CWE (3)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-653 Improper Isolation or Compartmentalization weakness
  • CWE-668 Exposure of Resource to Wrong Sphere weakness

References