Quick answers
- Is CVE-2026-100721 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-100721 being exploited in the wild.
- How severe is CVE-2026-100721?
- Critical severity, with a CVSS score of 10, published 27 September 2026.
- Which products and versions are affected?
- vm2 (npm) <= 3.12.1, SEMVER:introduced=0,fixed=3.12.2; Patrik Simek Vm2 before 3.12.2.
- Is there a fix for CVE-2026-100721?
- Yes. vm2 (npm): upgrade to 3.12.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-100721 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-100721?
- Check whether you run vm2 (npm) or Patrik Simek Vm2 at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- vm2 (npm): upgrade to 3.12.2 or later
npm install vm2@3.12.2
Technical details
The vulnerability exists in LegacyResolver.isPathAllowedForModule in lib/resolver-compat.js, which uses a string prefix check (startsWith) instead of enforcing path boundaries when authorizing require statements. Guest code can therefore access sibling packages (e.g., `foo2`) that share a path prefix with allowlisted modules (e.g., `foo`), bypassing the external-module allowlist. The loaded module's top-level code executes in the host context before sandbox wrapping is applied, enabling arbitrary code execution.
Affected products
- Patrik Simek vm2 before 3.12.2
Identifiers
- CVE-2026-100721
- GHSA-5h3f-q97h-ccvc
Timeline
- 2026-09-27: disclosed: CVE-2026-100721 published
- 2026-08-22: patched: Fix committed to address path boundary checking in resolver