Eine weit verbreitete Erweiterung für Microsoft Visual Studio Code (VS Code) setzte Millionen von Entwicklern durch eine Cross-Site-Scripting-(XSS-)Schwachstelle unbemerkt dem Risiko aus, dass lokale Dateien exfiltriert werden.
Betroffen war die offizielle Erweiterung Live Preview – sie wurde mehr als 11 Millionen Mal heruntergeladen – und ermöglichte es bösartigen Websites, mit der Localhost-Umgebung eines Entwicklers zu interagieren.
Eine „… nicht authentifizierte Anfrage von einer bösartigen Website kann interne Root-Dateien auf dem Rechner des Entwicklers, auf dem der Live-Preview-Server läuft, auflisten“, sagten die Forscher von OX Security.
Die XSS-Schwachstelle in VS Code
Live Preview ist eine offizielle Microsoft-VS-Code-Erweiterung, mit der Entwickler Webanwendungen lokal rendern und testen können, ohne die IDE zu verlassen.
Um diese Funktion bereitzustellen, startet die Erweiterung auf dem Rechner des Entwicklers einen eingebetteten HTTP-Server, der üblicherweise über eine Localhost-Adresse erreichbar ist.
Diese Architektur vereinfacht zwar Entwicklungsabläufe, bedeutet aber auch, dass die Erweiterung Webanfragen verarbeitet und direkt mit dem lokalen Dateisystem interagiert – eine sichere Verarbeitung von Eingaben ist daher unerlässlich.
Ursache des Problems war die fehlerhafte Verarbeitung nicht vertrauenswürdiger Eingaben innerhalb des Live-Preview-Servers.
Konkret wurde in Szenarien mit der Meldung „Seite nicht vorhanden“ ein Parameter namens relativePathFormatted ohne ordnungsgemäße Bereinigung an den Browser zurückgegeben.
Da der Wert nicht maskiert wurde, konnten Angreifer eine speziell erstellte JavaScript-Nutzlast in die Antwort einschleusen, was zu einer reflektierten XSS-Schwachstelle führte.
Wenn Live Preview auf dem Rechner eines Entwicklers lief und dieser eine bösartige oder kompromittierte Website besuchte, konnte die Website unauthentifizierte HTTP-Anfragen an den lokalen Live-Preview-Server senden.
Aufgrund der XSS-Bedingung konnten eingeschleuste Skripte im Kontext des vertrauenswürdigen Localhost-Dienstes ausgeführt werden. Dadurch konnten externe Webinhalte effektiv mit internen Entwicklungsressourcen interagieren.
Forscher demonstrierten, dass dieses Verhalten Angreifern ermöglichen konnte, interne Root-Verzeichnisse aufzulisten, auf sensible lokale Dateien wie .env-Konfigurationsdateien zuzugreifen, API-Schlüssel und Passwörter zu extrahieren und proprietären Quellcode abzurufen.
Alle Versionen von Live Preview bis einschließlich 0.4.16 sind von der Schwachstelle betroffen.
Microsoft hat das Problem inzwischen in seinem aktuellen Patch behoben, indem die betroffene Eingabe ordnungsgemäß bereinigt wird. Systeme, auf denen eine veraltete Version läuft, bleiben jedoch dem Risiko einer potenziellen Datenexfiltration ausgesetzt.
Risiken in Entwicklungsumgebungen eindämmen
Organisationen sollten Entwicklungsumgebungen durch die Installation von Updates und zusätzliche Härtungsmaßnahmen absichern, um die Angriffsfläche zu verringern.
Da auf Entwicklungsrechnern häufig Quellcode und Zugangsdaten gespeichert sind, können stärkere lokale Sicherheitskontrollen dazu beitragen, die Auswirkungen ähnlicher Schwachstellen zu begrenzen.
- Auf die neueste Version der Live-Preview-Erweiterung aktualisieren und ein konsequentes Patch-Management für IDEs, Erweiterungen, Betriebssysteme und Abhängigkeiten betreiben.
- Die Angriffsfläche durch Deaktivieren oder Deinstallieren nicht benötigter VS-Code-Erweiterungen reduzieren und lokale Entwicklungsserver ausschalten, wenn sie nicht aktiv genutzt werden.
- Den Zugriff auf Localhost-basierte Dienste mithilfe von Host-Firewalls, Netzwerksegmentierung und Kontrollen beschränken, die Cross-Origin-Anfragen an lokale Ressourcen begrenzen.
- Netzwerk-Ausgangsfilterung und DNS-Überwachung implementieren , um verdächtige ausgehende Verbindungen von Entwicklungsrechnern zu erkennen oder zu blockieren.
- Die Endpunktsicherheit durch den Einsatz von EDR-Tools stärken, die ungewöhnliche Localhost-Aktivitäten, unerwartete Dateizugriffe und atypische Skriptausführung überwachen.
- Sensible Daten durch den Einsatz sicherer Lösungen zur Geheimnisverwaltung schützen statt Zugangsdaten in Klartextdateien wie .env-Konfigurationen zu speichern.
- Regelmäßig testen und aktualisieren Incident-Response-Pläne , um bei einer Kompromittierung von Entwicklungsumgebungen eine schnelle Erkennung und Eindämmung sowie den Austausch von Zugangsdaten zu gewährleisten.
Zusammengenommen tragen diese Maßnahmen dazu bei, den potenziellen Schadensradius einer kompromittierten Entwicklungsumgebung zu begrenzen und zugleich langfristige Widerstandsfähigkeit gegen ähnliche Bedrohungen aufzubauen.
Lokale Entwicklungstools und Sicherheitsrisiken
Dieser Vorfall unterstreicht die Sicherheitsaspekte moderner Entwicklungstools, insbesondere wenn Funktionen wie eingebettete lokale Server mit dem lokalen Dateisystem interagieren.
Da IDE-Erweiterungen weiterhin neue Funktionen erhalten, sollten Organisationen auf Entwicklungsrechnern einheitliche Sicherheitskontrollen anwenden, ähnlich denen für andere sensible Systeme.
Angesichts zunehmender Risiken in digitalen Ökosystemen setzen Organisationen Zero-Trust-Lösungen ein, um das implizite Vertrauen zwischen Anwendungen, Benutzern und lokalen Ressourcen zu reduzieren.





