Den Kern des Problems bildet laut Sicherheitshinweis die fehlerhafte Behandlung von Ausnahmen, die zwischen der Sandbox und dem Host-System übergehen. vm2 verlässt sich normalerweise auf Schutzmechanismen auf JavaScript-Ebene: Diese fangen Fehler aus der Host-Umgebung ab und kapseln kontextübergreifende Objekte über sogenannte Bridge-Proxies – beides läuft vollständig innerhalb von JavaScript ab.
Die WebAssembly-Ausnahmebehandlung kann JavaScript-Fehler jedoch auf einer tieferen Ebene innerhalb von Googles V8-Engine abfangen und so die JavaScript-basierten Schutzvorkehrungen von vm2 umgehen. Indem Angreifer über eine Symbol-zu-String-Konvertierung gezielt einen präparierten TypeError auslösen, lässt sich ein Fehlerobjekt von der Host-Seite zurück in die Sandbox einschleusen, ohne dass vm2 es bereinigt.
Da dieses durchgesickerte Objekt aus der Host-Umgebung stammt, können Angreifer dessen Konstruktorkette missbrauchen, um wieder Zugriff auf Node.js-Interna wie das Prozess-Objekt zu erlangen. Auf diesem Weg lässt sich schließlich beliebiger Code auf dem Host ausführen. Der Sicherheitshinweis des Maintainers enthält einen Proof-of-Concept, der diese Codeausführung auf dem Host-Rechner demonstriert.
Anwendern wird empfohlen, möglichst zeitnah auf vm2 3.10.5 oder neuer zu aktualisieren; die aktuellste Version ist 3.11.2.
Es ist nicht der erste schwerwiegende Vorfall dieser Art: Bereits zu Jahresbeginn war vm2 von einer weiteren kritischen Sandbox-Escape-Schwachstelle betroffen, die ebenfalls zur Ausführung beliebigen Codes auf dem zugrundeliegenden Host führen konnte und unter CVE-2026-22709 geführt wird. Frühere Sandbox-Ausbrüche in derselben Bibliothek umfassen CVE-2023-30547, CVE-2023-29017 und CVE-2022-36067 – ein Hinweis darauf, wie schwierig sich nicht vertrauenswürdiger Code in JavaScript-Sandbox-Umgebungen sicher isolieren lässt.
