Mehrere Linux-Appstores & Pling-Store-App via Cross-Site-Scripting angreifbar
Eine XSS-Lücke in Pling-basierten Stores wie dem KDE-Store könnte zur Manipulation gelisteter Apps missbraucht werden. Auch die Plingstore-App ist verwundbar.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/1/2/6/2/5/1/shutterstock_177632747-f4c93948a7205c43.jpeg)
(Bild: Evdokimov Maxim/Shutterstock.com)
Der Sicherheitsforscher Fabian Bräunlein von der Firma Positive Security hat eine bislang ungefixte Cross-Site-Scripting (XSS)-Lücke in Pling-basierten Linux-Appstores entdeckt, die zusätzlich auch die native Anwendung Pling-Store betreffen soll. Die Sicherheitslücke könnte missbraucht werden um Listings, also zum Download bereitstehende Apps, in betroffenen Stores zu manipulieren und ihnen beispielsweise Schadcode hinzuzufügen. Über die Pling-Store-App ist laut dem Forscher unter bestimmten Voraussetzungen überdies die Ausführung beliebigen Programmcodes aus der Ferne (Remote Code Execution, RCE) auf Linux-Systemen möglich.
Die Plattform Pling gehört zum Portal opendesktop.org der Firma hive 01 GmbH. Sie dient als alternative Download-Quelle für Themes, Icons, Desktop-Hintergründe, Software und mehr für Linux. Auf Pling setzen mehrere teils bekannte App-Stores wie etwa der KDE Store auf. Positive Security nennt als weitere Beispiele appimagehub.com, gnome-look.org und xfce-look.org. Die auf dem Electron-Framework basierende Anwendung Pling-Store (auch "PlingStore", früher OCS-Store) wiederum soll die Installation und Verwaltung von Pling-Inhalten erleichtern und wird für diesen Zweck von Pling-basierten App-Stores beworben.
(Bild: Screenshot)
"Wormable" XSS über Eingabefelder für Listings
Laut einem ausführlichen Positive-Security-Blogeintrag ist die Sicherheitslücke über eines der Eingabefelder ausnutzbar, die Entwicklern beim Anlegen und Bearbeiten von App-Listings bei Pling zur Verfügung stehen Das zum Einfügen von HTML-Inhalten vorgesehene Feld "HTML or Embed media code", dessen Inhalte innerhalb der Beschreibung der jeweiligen App angezeigt werden, nimmt demnach klaglos eine JavaScript-Payload entgegen, wenn diese hinter einem vorangestellten iFrame "versteckt" wird. Da Eingaben im Zuge von Software-Listings bei Pling dauerhaft auf dem Server gespeichert werden, käme eine solche Payload bei jedem nachfolgenden Aufruf des Listings mittels eines beliebigen Browsers oder auch der Pling-Store-App zur Ausführung (Stored XSS).
(Bild: Positive Security)
Bräunlein betont im Blogpost, dass die XSS-Lücke theoretisch "wormable" sei. Ein Angriffsszenario, bei dem Listings beliebiger Entwickler mit Schadcode verseucht werden könnten, sähe in der Theorie wie folgt aus: Der Angreifer legt initial einen eigenen App-Eintrag an und "versteckt" seine JavaScript-Payload, einen XSS-Wurm, in dem bereits erwähnten Listing-Eingabefeld. Der Wurm umfasst Code, der ihm im ersten Schritt das Hijacken der Session desjenigen ermöglicht, der das Listing aufruft. Sofern es sich bei dieser Person um einen Entwickler handelt, kann der Wurm im nächsten Schritt auf dessen Listings zugreifen. Er schreibt dann seinen eigenen Code in das "HTML or Embed media code"-Feld der fremden Listings, um sich von dort aus weiterverbreiten zu können. Die fremde App selbst könnte er etwa durch eine fast identische Kopie mit eingebauter Backdoor ersetzen.
Bräunlein weist in diesem Zusammenhang auch darauf hin, dass sich die Pling-basierten Stores Nutzeraccounts und Session-Daten teilen würden. Proof-of-Concept-Code für das Wurm-Szenario hat er indes nicht veröffentlicht.
Pling-Store-App auch jenseits der XSS-Lücke verwundbar
Laut Bräunlein funktionieren die XSS-Angriffe auch beim Aufruf präparierter Listings aus der Pling-Store-App heraus. Darüber hinaus sei via XSS über die App gar Remote Code Execution möglich. Grund hierfür sind weitere Sicherheitsmängel in der App, genauer: in der Komponente ocs-manager als lokalem Websocket-Server. Fehlende Validierungs- und Authentifizierungsmechanismen sorgen hier laut dem Forscher dafür, dass jede beliebige Website aus jedem Browser heraus eine Verbindung zu dem Websocket-Server initiieren kann und ocs-manager beliebige übermittelte Befehle entgegen nimmt. Auf diesem Wege könnten von der angesurften, präparierten Website ohne weitere Nutzerinteraktionen beliebige AppImage-Dateien heruntergeladen und ausgeführt werden, so lange die Pling-Store-App im Hintergrund läuft.
Proof-of-Concept-Code demonstriert diesen Sachverhalt; lediglich auf den Einbau eines benötigten Port-Brute-Forcing-Mechanismus hat Bräunlein verzichtet. "Der WebSocket-Server (ocs-manager), welcher beim Launch von PlingStore mitgestartet wird und Kommandos von beliebigen Websites akzeptiert, sucht sich beim Start einen freien, lokalen Port. Dieser ist im PoC-Skript hardcoded (...), kann aber leicht durch programmatisches Durchprobieren erraten werden", erläuterte der Forscher gegenüber heise Security.
Lücke besteht weiterhin – keine Reaktion der Entwickler
Bräunlein hat nach eigenen Angaben seit Ende Februar 2021 mehrfach versucht, via E-Mail, Telefon und Forenbeiträgen Kontakt zu den Pling-Entwicklern aufzunehmen. Diese hätten jedoch bis jetzt weder geantwortet noch die Sicherheitslücke aus ihren Produkten beseitigt. heise Security hat bereits am gestrigen Mittwoch ebenfalls per E-Mail bei der hive 01 GmbH nachgehakt, bislang jedoch noch keine Antwort erhalten.
Da die XSS- und RCE-Gefahren nach wie vor bestehen, rät Bräunlein im Blogeintrag dazu, die Pling-Store-App vorerst nicht zu nutzen beziehungsweise das verwundbare AppImage bestenfalls komplett vom System zu entfernen. Obgleich bislang weder Exploits in freier Wildbahn beobachtet noch öffentlich verfügbarer Code für einen möglichen XSS-Wurm aufgetaucht ist, rät der Forscher außerdem dazu, sich bewusst zu machen, dass im Grunde jedes Listing in Pling-basierten Linux-Appstores Accounts eingeloggter Nutzer hijacken und Schadcode ausliefern könnte. Am besten sei es, sich vorläufig auszuloggen und die Stores nicht zu nutzen.
Reaktionsfreudiger als hive 01 zeigte sich übrigens das Gnome-Team, dem Bräunlein eine ebenfalls im Blogeintrag beschriebene XSS-Lücke in der Gnome Extensions-Website (extensions.gnome.org) meldete. Diese wurde innerhalb von 24 Stunden beseitigt und stellt bereits seit Ende Februar keine Gefahr mehr dar.
(ovw)