6 Punkte von GN⁺ 2025-03-01 | Noch keine Kommentare. | Auf WhatsApp teilen

„Natürlich war Firebase (teilweise) schuld“

  • Beim Herunterladen der Installationsdatei des KI-Editors Cursor wurde über die Lulu-Firewall festgestellt, dass eine Verbindung zu ToDesktop versucht wird
    • ToDesktop ist ein Dienst für Electron-App-Paketierung, SDKs, Updates usw.
  • Es wurde bestätigt, dass die App Firestore verwendet, und über die Entwicklertools wurde eine erste Untersuchung von Firebase gestartet
    • Firebase: eine von Google angebotene Backend-Plattform für Apps, die über die NoSQL-Datenbank Firestore clientseitige Datenspeicherung und -verarbeitung unterstützt
  • Mithilfe von Entwicklertools (DevTools) und Sourcemaps wurden die in Firestore verwendeten Collections untersucht
  • Dabei wurde eine Collection namens temporaryApplications gefunden, sie enthielt jedoch nur eine alte Liste und keine sensiblen Informationen (seit 2022 nicht mehr aktualisiert)
  • Es wurde festgestellt, dass die meisten zentralen Logiken und Deployment-Abläufe über das npm-Paket @todesktop/cli laufen
  • Auch @todesktop/cli hatte Sourcemaps, sodass mit sourcemapper die Struktur des Original-Quellcodes nachvollzogen werden konnte

Ein Blick in die ToDesktop CLI

  • ToDesktop CLI: übernimmt zentrale Funktionen wie App-Deployment, Upload des Quellcodes usw.
  • Bei der Analyse der CLI-Sourcemaps wurde eine Schwachstelle entdeckt, mit der sich über die Firebase Cloud Function getSignedURL beliebige S3-Uploads missbrauchen ließen, allerdings schien es schwierig, tatsächlich sinnvolle Dateipfade zu finden

Hijacking der Deployment-Pipeline über ein Postinstall-Skript

  • Ziel: Ausführungsrechte für Code in dem Container (Server) zu erlangen, in dem der Build läuft
  • In das postinstall-Skript der package.json wurde eine Reverse-Shell-Payload eingefügt, um im Build-Container eine Verbindung zu empfangen
  • Der Zugriff auf das Innere des Containers gelang erfolgreich, und die Struktur der Build-Umgebung sowie wichtige Dateien wurden untersucht
  • Die Datei config.json.encrypted wurde gefunden, außerdem wurde die Entschlüsselungsmethode ermittelt und die echten Geheimnisse (config.json) extrahiert
  • Zusätzlich wurde intern auch ein Firebase-Admin-Key (mit weitreichenden Rechten) gefunden

Post-Exploitation

  • Über diese Schwachstelle konnten beliebige App-Updates verteilt werden, sodass beim Neustart der App auf Nutzerseite sofort schädlicher Code ausgeführt werden konnte
  • Tatsächlich wurde nach dem Verteilen eines Updates an eine Test-App clientseitig RCE (Remote Code Execution) reproduziert

Auswirkungen

  • Da sich bösartige Updates an alle Apps verteilen ließen, die ToDesktop verwenden, könnte das Problem potenziell mehr als Millionen von Nutzern betreffen
  • Als Beispiele genannte Apps:
  • Besonders kritisch ist, dass viele dieser Nutzer in der IT- und Tech-Branche arbeiten, wodurch ein Angriff besonders großen Schaden anrichten könnte

The fix

  • Nach der Meldung wurde sofort Kontakt mit ToDesktop aufgenommen und die Behebung eingeleitet
  • ToDesktop behob das Problem schnell und gewährte zusätzlich eine weitere Belohnung
  • Die Architektur wurde so geändert, dass Signierung, Upload und andere kritische Aufgaben in einem Sidecar-Container mit getrennten Rechten vom Build-Container ausgeführt werden
  • Den offiziellen Security-Incident-Report von ToDesktop gibt es hier
  • Sicherheitsvorfälle können bei jedem Unternehmen auftreten, entscheidend ist jedoch der Umgang damit, und ToDesktop hinterließ mit seiner schnellen und kooperativen Reaktion einen positiven Eindruck

Noch keine Kommentare.

Noch keine Kommentare.