CVE-2026-100721
vm2 vor 3.12.2 Autorisierungsumgehung über benutzerdefinierten Resolver
- Veröffentlicht
- 27.09.2026
- Aktualisiert
- 27.09.2026
- CNA zuweisen
- VulnCheck
- Beweise beobachtet
- 03.10.2026
Primäres CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XZusammenfassung
vm2 vor 3.12.2 enthält eine Autorisierungsumgehung im NodeVM-External-Module-Resolver. Wenn ein Embedder `require.external` mit einem benutzerdefinierten Resolver konfiguriert (und `context: 'host'`), zeichnet `LegacyResolver.customResolve` in lib/resolver-compat.js das aufgelöste Modulverzeichnis in `this.externals` als `new RegExp('^' + escapeRegExp(resolvedPath))` auf, ohne einen Pfadtrenner oder eine End-of-String-Grenze zu verlangen. Nicht vertrauenswürdiger Gastcode kann daher das auf der Allowlist stehende Modul (z. B. `foo`) requiren und anschließend den absoluten Pfad eines nicht auf der Allowlist stehenden Geschwistermoduls requiren, dessen Pfad lediglich das aufgelöste Präfix teilt (z. B. `.../node_modules/foo2/index.js`); das Geschwistermodul besteht `isPathAllowedForModule` und wird über `hostRequire` geladen, sodass sein Top-Level-Code im Hostprozess ausgeführt wird, bevor die Exports mit `vm.readonly` umschlossen werden, was zu einer Sandbox-Escape und beliebiger Codeausführung im Hostkontext führt.
Quellen
Python-PoC für CVE-2026-100721: erkennt und nutzt die Umgehung der externen Allowlist von vm2 <3.12.2 NodeVM aus, erreicht Sandbox-Escape und Host-RCE über ein lokales Lab oder massenhafte HTTP-Ziele.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.