PT-2026-99448 · Npm · Vm2

·

CVE-2026-100721

·

Published

2026-08-22

·

Updated

2026-09-28

CVSS v4.0

9.5

Critical

VectorAV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Name of the Vulnerable Software and Affected Versions vm2 versions prior to 3.12.2
Description An authorization bypass exists in the NodeVM external-module resolver. When an embedder configures require.external with a custom resolver and context: 'host', the LegacyResolver.customResolve function in lib/resolver-compat.js records the resolved module directory in this.externals using a regular expression that lacks a path separator or end-of-string boundary. This allows untrusted guest code to require an allowlisted module and subsequently require the absolute path of a non-allowlisted sibling module that shares the same resolved prefix. Because the sibling passes isPathAllowedForModule, it is loaded through hostRequire, allowing its top-level code to execute in the host process before exports are wrapped with vm.readonly. This leads to a sandbox escape and arbitrary code execution in the host context.
Recommendations Update to version 3.12.2 or later.

Exploit

Fix

Incorrect Authorization

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

BDU:2026-15732
CVE-2026-100721
GHSA-5H3F-Q97H-CCVC

Affected Products

Vm2