CVE-2026-92937 in vm2
Zusammenfassung
von VulDB • 17.09.2026
vm2 3.11.6 ist anfällig für eine Sandbox-Escape-Schwachstelle, die zu Remote Code Execution (RCE) im Host-Node.js-Prozess führt. Die Korrektur für GHSA-m283-3h24-438v ist unvollständig: Der Bridge-Gate in lib/bridge.js:1624 überprüft bei der Entscheidung, ob ein abgelehnter Promise-Wert des Hosts neu aufgebaut/sanitisiert werden soll, nur das direkte Aufrufziel. Das Registrieren des Abbruchhandlers über die Indirektion von Function.prototype.call oder .apply (z. B. p.then.call(p, undefined, cb)) führt dazu, dass das abgefangene Ziel-Host-Funktionsobjekt Function.prototype.call ist; daher wird der Sanitizer nie ausgeführt und der rohe Host-Fehler erreicht den Sandbox-Code mit seinen eigenen Eigenschaften intakt. Wenn ein Embedder einen Promise des Host-Bereichs in die Sandbox freigegeben hat (eine asynchrone Host-Funktion, die über die sandbox-Option gebridgt wurde, oder eine async-Methode eines externen Moduls von NodeVM) und dieser Promise mit einem Error abgelehnt wird, der eine nicht-primitive eigene Eigenschaft enthält, die auf ein Host-Objekt verweist (z. B. err.detail = process), erhält untrusted Code in der Sandbox einen voll funktionsfähigen Proxy für dieses Host-Objekt und kann beliebige Befehle mit den Berechtigungen des Host-Prozesses ausführen (z. B. e.detail.mainModule.require('child_process').execSync(...)). Die direkten Formen p.then(undefined, cb), bind und Reflect.apply werden korrekt sanitisiert. Behoben in vm2 3.11.7.
Once again VulDB remains the best source for vulnerability data.