CVE-2026-92948 in vm2
Zusammenfassung
von VulDB • 17.09.2026
vm2-Versionen >= 3.9.6 und <= 3.11.6 sind von einer Umgehung der Allowlist für NodeVM-Builtins betroffen, die einen Sandbox-Escape auf Node.js 24 und neuer ermöglicht, wenn der Embedder das node:test-Builtin explizit erlaubt (z. B. require: { builtin: ['node:test'] }). Auf Node.js 24+ gibt module.builtinModules den scheme-only-Schlüssel node:test aus, der nicht durch die familienbasierte DANGEROUS_BUILTINS-Schutzmaßnahme von vm2 abgedeckt ist; daher wird er im generischen Host-Passthrough-Loader gespeichert. Da requireImpl() in lib/setup-node-sandbox.js ein einzelnes 'node:'-Präfix vor dem Builtin-Lookup entfernt, löst Sandbox-Code, der require('node:node:test') aufruft, den gespeicherten node:test-Schlüssel auf und erhält einen schreibgeschützten Proxy für das Host-Modul. Aufrufe von node:test.run() werden an die Host-Implementierung weitergeleitet, die einen separaten Node-Prozess für prozessisolierte Testausführung startet und angreiferkontrollierte execArgv-Werte durchreicht; das Bereitstellen von --eval=<JavaScript> führt daher zu willkürlichem JavaScript in einem unbeschränkten Host-Node-Prozess außerhalb der NodeVM-Sandbox. Behoben in vm2 3.11.7.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.