SchwachstellenHackerangriffeCloud-Sicherheit

Kritische Sandbox-Lücke in vm2: Angreifer können auf Host-Systeme zugreifen

Kritische Sandbox-Lücke in vm2: Angreifer können auf Host-Systeme zugreifen
Zusammenfassung

Eine kritische Sicherheitslücke in der beliebten Node.js-Sandbox-Bibliothek vm2 ermöglicht es Angreifern, aus der isolierten Umgebung auszubrechen und beliebigen Code auf dem Host-System auszuführen. Die als CVE-2026-26956 katalogisierte Schwachstelle betrifft mindestens vm2 Version 3.10.4 und tritt auf, wenn Node.js 25 mit aktivierter WebAssembly-Exception-Handling und JSTag-Unterstützung verwendet wird. vm2 ist eine weit verbreitete Open-Source-Bibliothek mit über 1,3 Millionen wöchentlichen Downloads, die von Online-Coding-Plattformen, Automatisierungstools und SaaS-Anwendungen genutzt wird, um unsicheren Benutzercode in einer isolierten Umgebung auszuführen. Die Lücke entsteht durch fehlerhafte Exception-Behandlung zwischen Sandbox und Host: Angreifer können mittels WebAssembly-Exception-Handling JavaScript-Fehler auf niedriger Ebene in Googles V8-Engine abfangen und so vm2s JavaScript-basierte Sicherheitsmechanismen umgehen. Dies ermöglicht es ihnen, auf Node.js-Internals wie das Process-Objekt zuzugreifen und beliebige Befehle auszuführen. Besonders für deutsche Unternehmen und Behörden, die solche Sandbox-Lösungen für Code-Ausführungsplattformen einsetzen, stellt dies ein erhebliches Risiko dar. Ein Sicherheits-Update auf vm2 Version 3.10.5 oder höher wird dringend empfohlen.

Die Sicherheitslücke CVE-2026-26956 betrifft vm2 in der Version 3.10.4 und möglicherweise auch frühere Versionen. Das Angriffsszenario ist bemerkenswert spezifisch: Die Lücke manifestiert sich nur in Umgebungen mit Node.js 25 (bestätigt auf Version 25.6.1), die WebAssembly-Exception-Handling und JSTag-Support aktiviert haben.

vm2 ist eine weit verbreitete Open-Source-Bibliothek, die dazu dient, nicht vertrauenswürdigen JavaScript-Code in einer isolierten Sandbox-Umgebung auszuführen. Sie schirmt Sandbox-Code vom Host-System ab und blockiert den Zugriff auf sensitive Node.js-APIs wie “process” und das Dateisystem.

Die technische Ursache der Lücke liegt in der fehlerhaften Behandlung von Exceptions, die zwischen der Sandbox und dem Host-System übertragen werden. vm2 verlässt sich normalerweise auf JavaScript-basierte Sicherheitsmechanismen und sogenannte “Bridge Proxies”, die Cross-Context-Objekte abwickeln. Diese Schutzmaßnahmen funktionieren jedoch auf JavaScript-Ebene.

Angreifer können WebAssembly-Exception-Handling nutzen, um JavaScript-Fehler auf einer tieferen Ebene innerhalb der V8-Engine von Google zu interceptieren. Dies umgeht vm2s JavaScript-basierte Sicherheitsverteidigungen vollständig. Durch eine speziell präparierte TypeError-Auslösung mittels Symbol-zu-String-Konvertierung können Angreifer ein unsanitiertes Error-Objekt von der Host-Seite zurück in die Sandbox lecken. Da dieses Objekt aus der Host-Umgebung stammt, können Angreifer dessen Constructor-Kette missbrauchen, um Zugriff auf Node.js-Internals wie das “process”-Objekt zurückzugewinnen – mit direkter Folge: Beliebige Befehlsausführung auf dem Host-System.

Die Wartungs-Advisory enthält einen funktionsfähigen Proof-of-Concept-Exploit, der Remote-Code-Execution nachweist. Benutzer sollten dringend auf Version 3.10.5 oder neuer (aktuell 3.11.2) aktualisieren.

Besonders besorgniserregend: Dies ist nicht das erste Mal. Anfang dieses Jahres betraf die Lücke CVE-2026-22709 vm2 mit ähnlicher Kritikalität. Frühere Sandbox-Escape-Fehler umfassen CVE-2023-30547, CVE-2023-29017 und CVE-2022-36067. Diese Serie zeigt ein fundamentales Problem: JavaScript-Sandbox-Isolation ist extrem schwierig zu sichern.