Een startup uit Berlijn heeft een kwetsbaarheid voor het uitvoeren van code op afstand (RCE) en een cross-site scripting (XSS)-aanval ontdekt in Pling, dat wordt gebruikt door verschillende applicatiecatalogi die op dit platform zijn gebouwd. Deze kwetsbaarheid zou het mogelijk kunnen maken om JavaScript-code uit te voeren in de context van andere gebruikers. Onder de getroffen sites bevinden zich enkele van de toonaangevende open-source applicatiecatalogi, zoals store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org en pling.com.
Positive Security, dat de gaten vond, zei dat de bugs nog steeds aanwezig zijn in de Pling-code en dat de beheerders niet hebben gereageerd op de kwetsbaarheidsrapporten.
Eerder dit jaar hebben we gekeken naar hoe populaire desktop-apps omgaan met door gebruikers geleverde URI's en hebben we in verschillende ervan kwetsbaarheden gevonden bij het uitvoeren van code. Een van de apps die ik controleerde was de KDE Discover App Store, die niet-vertrouwde URI's op een onveilige manier bleek te verwerken (CVE-2021-28117, KDE Security Advisory).
Onderweg ontdekte ik al snel een aantal ernstigere kwetsbaarheden in andere vrije softwaremarkten.
Een ontwormde XSS met het potentieel voor supply chain-aanvallen in op Pling gebaseerde markten en een drive-by RCE die gebruikers van de PlingStore-applicatie treft, kan nog steeds worden misbruikt.
Pling presenteert zichzelf als een marktplaats waar creatievelingen Linux-desktopthema's en -afbeeldingen kunnen uploaden , in de hoop wat geld te verdienen met hun supporters. Het bestaat uit twee delen: de code die nodig is om je eigen 'bling bazaar' te runnen en een op Electron gebaseerde applicatie die gebruikers kunnen installeren om hun thema's te beheren vanuit een Pling-marktplaats. De webcode bevat de XSS-kwetsbaarheid, terwijl de client zowel de XSS- als een RCE-kwetsbaarheid bevat. Pling drijft verschillende websites aan, van pling.com en store.kde.org tot gnome-look.org en xfce-look.org.
De kern van het probleem is dat het Pling-platform het mogelijk maakt om multimediablokken in HTML-formaat toe te voegen, bijvoorbeeld om een ​​YouTube-video of een afbeelding in te sluiten. De code die via het formulier wordt toegevoegd, wordt niet goed gevalideerd, waardoor kwaadwillende code, vermomd als een afbeelding, kan worden toegevoegd en informatie in de map kan worden geplaatst die JavaScript-code uitvoert wanneer deze wordt bekeken. Als deze informatie toegankelijk is voor gebruikers met een account, is het mogelijk om namens die gebruiker acties in de map uit te voeren, waaronder het toevoegen van een JavaScript-aanroep aan hun pagina's, waardoor in feite een soort netwerkworm wordt geïmplementeerd.
Bovendien is er een kwetsbaarheid ontdekt in de PlingStore-applicatie, geschreven met het Electron-platform, waardoor deze zonder browser door OpenDesktop-directory's kan navigeren en daarin gevonden pakketten kan installeren. Deze kwetsbaarheid in PlingStore maakt het mogelijk dat de code ervan op het systeem van de gebruiker wordt uitgevoerd.
Wanneer de PlingStore-applicatie actief is, wordt ook het ocs-manager-proces gestart. Dit proces accepteert lokale verbindingen via WebSocket en voert commando's uit, zoals het laden en starten van applicaties in AppImage-formaat . Deze commando's zouden door de PlingStore-applicatie verzonden moeten worden, maar in de praktijk kan, door het ontbreken van authenticatie, een verzoek naar ocs-manager vanuit de browser van de gebruiker worden verzonden. Als een gebruiker een kwaadwillende website opent, kan deze een verbinding met ocs-manager tot stand brengen en code op het systeem van de gebruiker uitvoeren.
Er is ook een XSS-kwetsbaarheid gemeld in de directory extensions.gnome.org; in het veld met de URL van de homepage van de plugin kun je JavaScript-code opgeven in het formaat "javascript:code". Wanneer je op de link klikt, wordt de opgegeven JavaScript-code uitgevoerd in plaats van de projectwebsite te openen.
Enerzijds is het probleem meer speculatief , aangezien de moderatie betrekking heeft op de locatie in de directory extensions.gnome.org, en de aanval niet alleen vereist dat een specifieke pagina wordt geopend, maar ook dat er expliciet op de link wordt geklikt. Anderzijds is het mogelijk dat de moderator tijdens het verificatieproces naar de website van het project wil gaan, het linkformulier wil omzeilen en de JavaScript-code wil uitvoeren binnen de context van zijn of haar account.
Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.