Vulnerabilities / CVE-2026-93603

critical

CVE-2026-93603

vm2: vm2 before 3.12.1 Sandbox Escape RCE via Non-Strict Host Function

Published Modified CWE 94
In the Trivy database since at least 24 Oct 2026, 07:11 UTCWhen it arrived before that build is not recorded.

Severity by source

Red Hat9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Trivy's own label is CRITICAL. Rated critical by Red Hat.

Description

vm2 through 3.12.0 (fixed in 3.12.1) does not correctly handle a nullish `this` receiver in the apply trap of its bridge (lib/bridge.js): when sandboxed code calls a host-provided non-strict (sloppy-mode) function without a receiver — e.g. `fn()`, a detached method, `fn.call()`, `fn.apply(undefined)`, `Reflect.apply(fn, undefined, [])`, or `fn.bind()()` — the undefined receiver is passed straight through to the host call, and V8 substitutes the host realm's global object for `this`. vm2 then wraps and returns that object to the sandbox, giving sandboxed script a live proxy of the host global. This allows a complete sandbox escape: untrusted script can reach `process` and execute arbitrary code/commands on the host (for example via `process.getBuiltinModule('child_process').execSync`). Exploitation requires that the embedding application expose at least one non-strict host function to the sandbox; strict-mode and ES module host functions are not affected.

Affected packages and fixed versions

SourcePackageFixed in
seal npm::Seal Security Database@seal-security/vm2, vm23.9.11-sp999, 3.9.12-sp999, 3.9.13-sp999, 3.9.14-sp999
Show all 2 entries from 1 source
SourcePackageFixed in
seal npm::Seal Security Database@seal-security/vm23.9.11-sp999, 3.9.12-sp999, 3.9.13-sp999, 3.9.14-sp999
seal npm::Seal Security Databasevm23.9.11-sp999, 3.9.12-sp999, 3.9.13-sp999, 3.9.14-sp999

References

Vulnerability data compiled from the Trivy vulnerability database (trivy-db, Aqua Security, Apache License 2.0), which aggregates third-party advisories. CVE records are published by The MITRE Corporation under the CVE Terms of Use; CVE is a trademark of MITRE. This product uses data from the NVD API but is not endorsed or certified by the NVD. Severity, titles and advisory data from the GitHub Advisory Database (CC BY 4.0), Red Hat security data (CC BY 4.0) and the other sources linked on each entry. Entries may be summarised or re-formatted; the linked original is the authoritative record.