Isoliert-vm Schwachstelle ermöglicht Speicher Korruption und Sandbox Flucht

Autor: Veröffentlicht 5 min de lectura 5 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Sicherheitsforscher haben in der Open Source isoliert-vm-Bibliothek kritische Schwachstellen entdeckt - eine Node.js-Bindung, um unzuverlässig JavaScript in isolierten V8-Engine-Instanzen zu betreiben -, die es erlaubt, Code in der Sandbox enthalten, die Speicher des Host-Prozesses zu korrumpieren und sogar in bewährten Szenarien aus der Isolationsbox selbst zu entkommen. Das Urteil, veröffentlicht unter dem GitHub Security Advisory Identifier GHSA-864f-rcv7-6rh4, betrifft alle Versionen bis zu den enthaltenen 7.0.0 und wurde in den kürzlich veröffentlichten Versionen 6.2.0 und 7.0.1 korrigiert. Die Entdeckung wird auf Cristian-Alexandru Staicu de Endor Labs zurückgeführt und die Korrektur findet sich im Projektarchiv in GitHub.

In bestätigten technischen Bedingungen schafft isoliert-vm mehrere V8 Isolates - separate Instanzen der V8-Engine mit Haufen und unabhängigen Zuständen - so dass Node.js-Anwendungen unzuverlässigen Code ausführen können, ohne JavaScript-Objekte direkt zwischen dem Hauptprozess und der isolierten zu teilen. Um Daten zwischen diesen Grenzen zu bewegen, wird in C + eine Schicht von "glue" verwendet, die Werte serialisiert und deerialisiert; in dieser Schicht die Bibliothek die Klasse aussetzt Außen, entworfen, um Objekte vom Host sicher zum Gast zu kopieren und umgekehrt. Endor Labs dokumentiert, dass der Ausfall ein Typ Verwechslung in der Verwaltung der ExternalCopy-Transfer-Option, die es einem Gast ermöglicht, interne Strukturen zu manipulieren und Speicher Korruption im Host-Prozess zu verursachen.

Isoliert-vm Schwachstelle ermöglicht Speicher Korruption und Sandbox Flucht
Bild generiert mit IA.

Die technischen Auswirkungen der Forscher umfassen im Mindestfall einen kontrollierten Ausfall, der einen SIGSEGV (Verneidigung des Host-Prozesses) verursacht und im schlimmsten Fall die Host Ausführungsflusssteuerung nehmen, die den Weg zu Remote-Code Ausführung in dem Prozess öffnet, der die Sandbox beherbergt. Der Projektbetreuer, Marcel Laverdet, bestätigte, dass die minimale Auswirkung ein reproduzierbarer Crash von jedem Gast, der eine ivm erhält. Referenz - die übliche Möglichkeit, die Kapazität der Sandbox zu geben - und dass die maximale Wirkung gezeigt wurde, war eine Eroberung der Wirtsflusskontrolle.

Es ist wichtig, das zu trennen, was von dem bestätigt wird, was noch unsicher ist. Bestätigt: Schwachstelle existiert, wurde öffentlich gemeldet und in bestimmten Versionen gespalten; der Vektor beinhaltet ExternalCopy und transferList; das Potenzial für Speicher Korruption und Sandbox Flucht wurde von Forschern gezeigt und von Projektleitern beschrieben. Ungewissheit: Es gibt keine Beweise für die Massenausbeutung in Produktionsumgebungen, keine öffentliche CVE-Kennung, die dem Ausfall zugeordnet ist, und die vollständigen Details der Ausbeutung wurden durch die Entdeckungen erhalten, um Angriffe zu vermeiden.

Der praktische Umfang des Problems hängt davon ab, wie isoliert-vm in jedem Projekt verwendet wird. Die Buchhandlung ist beliebt im Node.js-Ökosystem - sein npm-Paket verzeichnete in der letzten Woche ungefähr eine Million Downloads nach öffentlichen Metriken - und wird sowohl in Dienstleistungen verwendet, die eine Remote-Ausführung von Benutzerskripten erlauben, als auch in Testumgebungen und Entwicklungstools. Diejenigen, die isolierte-vm-Instanzen ausführen, die unzuverlässigen Code akzeptieren oder ivm gewähren. Referenzen für Gäste sind höher weil die Mindestkapazität, die zur Ausnutzung des Ausfalls erforderlich ist, genau diese Referenz innerhalb des isolierten zu haben.

Die tatsächlichen Folgen können von lokalisierter Unverfügbarkeit (Crash-Prozesse) bis zu ernsthafteren Server- oder Serviceverpflichtungen, die die Sandbox hosten, reichen, wenn eine Farm es schafft, Code auf dem Host auszuführen. Darüber hinaus untergräbt die Verletzung der Host-Host-Vertrauensgrenze den Hauptzweck der Verwendung von Isolaten: potenziell gefährlichen Code laufen, ohne den Rest der Umgebung zu gefährden.

Praktische und überprüfbare Empfehlungen für betroffene Manager und Entwickler: zuerst, Aktualisierung isoliert-vm zu einer parched Version so schnell wie möglich; die Fixes sind im offiziellen Repository und in npm. Sie können die geparched Version mit Befehlen wienpm ls isoliert-vm --allum Einheiten zu finden, gefolgt vonnpm install isoliert-vm @ 7.0.1(oder die minimale sichere Version, die Ihre Lieferkette benötigt) und laufennpm rebuildwenn Ihre Umgebung native Module umbauen muss. Siehe die offizielle Projektseite in GitHub für den Sicherheitshinweis: GitHub Sicherheitsberatung und der npm Eingang: isoliert-vm in npm.

Wenn Sie nicht sofort aktualisieren können, wenden Sie die Zeitbegrenzung an: ivm. Sachgebiet eine Unzuverlässiger Quellcode; Minimieren Sie die Privilegien des Prozesses, der die Sandbox führt; kapseln Sie jede Sandbox in separaten Prozessen mit Ressourcenlimits und Betriebssystemrichtlinien (z.B. unprivileged user, cgroups, seccomp, namespaces) um den Einfluss eines Crashs oder willkürlicher Ausführung zu reduzieren und Zeichen der Ausbeutung zu überwachen (repeated Crashs of the process, abnormale Verhaltens, außerhalb des Common). Darüber hinaus prüfen Übergangseinheiten mit Werkzeugen wie Dependabot, Snyk oder npm Audit, um Bibliotheken zu identifizieren, die isoliert-vm ziehen.

Isoliert-vm Schwachstelle ermöglicht Speicher Korruption und Sandbox Flucht
Bild generiert mit IA.

Aus Sicht der Software-Design erinnert dieser Vorfall daran, dass die Sicherheit einer Sandbox nicht nur von der Isolation von V8 abhängig ist - die Isolates hielt die Grenze nach den Forschern -, sondern auch von der korrekten Implementierung des nativen Codes, der es eine Brücke zwischen Speichergrenzen macht. Wie Endor Labs betont, kann eine "solide Primitive" (die V8-Isolatgrenze) durch Fehler in der C + +-Bindungsschicht beeinträchtigt werden.

Schließlich kurzfristige empfohlene Maßnahmen für Sicherheitsteams: Priorisieren Sie den Patch in exponierten Bereitstellungen, überprüfen Sie die Politik der Gewährung von Sandboxen Kapazität (vermeiden Sie Referenzen, wenn nicht unbedingt erforderlich), erstellen Sie Prozess Drop-Benachrichtigungen und führen Sie eine forensische Zwischenüberprüfung, wenn Anzeichen von Ausbeutung erkannt werden. Mittelfristig sollte das unzuverlässige Code-Ausführungsmodell neu bewertet werden - zum Beispiel, Lasten auf vollständig isolierte Prozesse auf Systemebene zu bewegen oder robustere Privileg-Trenntechnologien einzusetzen - und einen automatisierten Update-Kanal für kritische Abhängigkeiten aufrechtzuerhalten. Um zu verstehen, wie die Isolate auf Motorebene arbeiten und warum die Marsfinding-Schicht so empfindlich ist, können Sie die V8-Dokumentation sehen: V8 Isoliert - v8.dev.

Kurz gesagt: Es gibt einen nachgewiesenen Ausfall in isoliert-vm, der Speicherkorruption von Sandboxen ermöglicht und korrigiert wurde; die sofortige Maßnahme ist, die Gewährung von Kapazität für die Gäste zu aktualisieren und zu überprüfen, während die Ungewissheit über die Verwendung in realen Angriffen erfordert kontinuierliche Überwachung und Audit.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.