Die JavaScript-Sandbox vm2 führt potenziell unsicheren JavaScript-Code in einer isolierten Umgebung aus. Dieses Sandboxing sorgt dafür, dass fremder JavaScript-Code keinen Zugriff auf das System erlangt. Die vm2-SandBox basiert auf Node.js und ist eine verbreitete Alternative zu dessen integrierter virtuellen Maschine.
Eine kürzlich entdeckte Sicherheitslücke in der JavaScript-Sandbox vm2 hat zur Folge, dass entfernte Angreifer Befehle ausführen können. Die Attacke läuft über die Error-API der JavaScript-Engine V8.
Der verantwortliche Programmierfehler befindet sich in dem Error-Tracing-Code. Dessen Aufgabe ist es, Fehler aufzuspüren und zu verfolgen. Dazu verwendet die JavaScript-Engine V8 die Error.prepareStackTrace-API. Node.js nutzt ebenfalls diese Methode und gibt ihr CallSite-Objekte als Parameter mit. Bei der Verarbeitung dieser Objekte tritt ein Fehler auf, der es dem Angreifer erlaubt aus der SandBox auszubrechen.
Betroffen ist die Version 3.9.11.
