CVE-2026-93603 in vm2
Zusammenfassung
von VulDB • 18.09.2026
vm2 bis 3.12.0 (behebt in Version 3.12.1) behandelt einen nullischen `this`-Empfänger im apply-Fallelement seiner Bridge (lib/bridge.js) nicht korrekt: Wenn sandkastengecode eine vom Host bereitgestellte, nicht strenge Funktion (sloppy-mode) ohne Empfänger aufruft – z. B. `fn()`, eine entkoppelte Methode, `fn.call()`, `fn.apply(undefined)`, `Reflect.apply(fn, undefined, [])` oder `fn.bind()()` –, wird der undefinierte Empfänger direkt an den Host-Aufruf weitergegeben, und V8 substituiert das globale Objekt des Host-Realm für `this`. vm2 wickelt dieses Objekt dann ein und gibt es an den Sandkasten zurück, wodurch dem sandkastengebundenen Skript ein Live-Proxy des globalen Host-Objekts bereitgestellt wird. Dies ermöglicht eine vollständige Sandbox-Escape: Unbefugtes Skript kann auf `process` zugreifen und beliebigen Code/Befehle auf dem Host ausführen (z. B. über `process.getBuiltinModule('child_process').execSync`). Die Ausnutzung erfordert, dass die einbettende Anwendung mindestens eine nicht strenge Host-Funktion an den Sandkasten offenlegt; Strict-Mode- und ES-Modul-Host-Funktionen sind davon nicht betroffen.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.