Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-100721— vm2 before 3.12.2 Authorization Bypass via Custom Resolver

Quick assessment

Affected
patriksimek vm2
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

vm2 在 3.12.2 版本之前,在 NodeVM 的外部模块解析器中存在授权绕过漏洞。当嵌入方(embedder)通过 配置并使用自定义解析器设置 时, 中的 会将解析后的模块目录以 的形式记录在 中,但未要求路径分隔符或字符串结尾边界。 因此,不受信任的访客代码可以首先请求允许列表中的模块(例如 ),然后请求其非允许列表兄弟模块的绝对路径,而该兄弟模块的路径仅需共享已解析的前缀即可(例如 )。由于该兄弟模块路径通过了 检查,它将通过 被加载,从而在 包装其导出之前,在宿主进程中执行其顶层代码。这会导致沙箱逃逸

CVSS 9.0 · Critical EPSS 0.40% · P32
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-100721

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
vm2 before 3.12.2 Authorization Bypass via Custom Resolver
Source: CVE Program / CVE List V5
Vulnerability Description
vm2 before 3.12.2 contains an authorization bypass in the NodeVM external-module resolver. When an embedder configures `require.external` with a custom resolver (and `context: 'host'`), `LegacyResolver.customResolve` in lib/resolver-compat.js records the resolved module directory in `this.externals` as `new RegExp('^' + escapeRegExp(resolvedPath))`, without requiring a path separator or end-of-string boundary. Untrusted guest code can therefore require the allowlisted module (e.g. `foo`) and then require the absolute path of a non-allowlisted sibling whose path merely shares the resolved prefix (e.g. `.../node_modules/foo2/index.js`); the sibling passes `isPathAllowedForModule` and is loaded through `hostRequire`, so its top-level code runs in the host process before the exports are wrapped with `vm.readonly`, resulting in a sandbox escape and arbitrary code execution in the host context.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
授权机制不正确
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
patriksimek vm2 0 ~ 3.12.2 -

II. Public POCs for CVE-2026-100721

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-100721

请登录查看更多情报信息。

Vendor Advisories for CVE-2026-100721 (1)

Other References for CVE-2026-100721 (4)

Same Patch Batch · patriksimek · 2026-09-27 · 3 CVEs total

CVE-2026-100723 7.5 HIGH vm2 before 3.12.2 Memory Disclosure via zlib Buffer Pool
CVE-2026-100722 6.8 MEDIUM vm2 before 3.12.2 Host Process Termination via Construct Trap

IV. Related Vulnerabilities

V. Comments for CVE-2026-100721

No comments yet


Leave a comment