JavaScript-Sandbox vm2: kritische Lücke erlaubt Ausbruch
Die JavaScript-Sandbox vm2 für Node.js war eigentlich beendet. Nun schließt ein Update eine kritische Sicherheitslücke.
(Bild: Shutterstock / Skorzewiak)
vm2 ist eine JavaScript-Sandbox für Node.js. Deren Entwicklung wurde 2023 eigentlich eingestellt. In der Software wurde eine weitere Sicherheitslücke entdeckt, die den Ausbruch aus der gesicherten Umgebung und die Ausführung von beliebigem Code ermöglicht. Ein Update steht bereit.
In der Schwachstellenmeldung erklären die Autoren, dass die Filterung der Eingaben an die Callback-Funktionen von Promise.prototype.then und Promise.prototype.catch umgangen werden kann. Dadurch können Angreifer aus der Sandbox ausbrechen und eigenen Code starten (CVE-2026-22709, CVSS 9.8, Risiko „kritisch“). Während die Callback-Funktion von localPromise.prototype.then in „lib/setup-sandbox.js“ eine Filterung vornimmt, fehlt diese in globalPromise.prototype.then, erklären die Autoren weiter. Der Patch für die Datei ist recht übersichtlich und ergänzt die Filterung.
Die Version 3.10.2 von vm2 korrigiert den Fehler. Ein Proof-of-Concept-Exploit ist bereits verfügbar. Bösartige Akteure können die Lücke daher schnell in ihr Standard-Repertoire aufnehmen. Seit wenigen Tagen ist zudem die noch aktuellere Version 3.10.3 verfügbar. Die Korrekturen darin sollen ebenfalls etwa Ausbrüchen aus der Sandbox vorbeugen. Entwickler sollten daher auf diese Version aktualisieren, sofern sie noch vm2 einsetzen.
Beendetes Projekt wiederbelebt
Der Initiator des vm2-Projekts, Patrik Simek, hatte Mitte 2023 eigentlich das Ende des Projekts verkündet. Kurz zuvor wurde eine kritische Sicherheitslücke gefunden, für die keine Fehlerkorrektur programmiert wurde. Simek hatte daher Entwicklern empfohlen, stattdessen auf das ebenfalls quelloffene isolated-vm zu wechseln.
Bislang eher unbemerkt blieben neue Commits im Projekt von Ende Oktober 2025. Unter dem Titel „Resurrection“ hat Simek damit die Weiterentwicklung von vm2 mit Versionssprung auf 3.10 angestoßen. Während Simek sich ursprünglich deutlich zu den Gründen für das Aus geäußert hatte – die wachsende Komplexität von Node.js sei nicht mehr handhabbar –, finden sich keine Hinweise für die Motivation, nach mehr als zwei Jahren doch wieder weiterzumachen.
Videos by heise
Wer bisher das Ende des Projekts nicht mitbekommen und daher eine veraltete, mit Sicherheitslücken gespickte Version von vm2 im Einsatz hat, sollte zügig auf die fehlerkorrigierte Fassung umsteigen.
(dmk)