En Berlinbaserad startup har avslöjat en sårbarhet för fjärrkodkörning (RCE) och en XSS-brist (Cross-Site Scripting) i Pling, som används av flera applikationskataloger byggda på denna plattform. Denna sårbarhet kan tillåta att JavaScript-kod körs i andra användares kontext. Bland de berörda webbplatserna finns några av de ledande applikationskatalogerna med öppen källkod, såsom store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org och pling.com, bland andra.
Positiv säkerhet, som hittade hålen, sa att buggarna fortfarande finns i Pling-koden och att dess underhållare inte har svarat på sårbarhetsrapporterna.
Tidigare i år tittade vi på hur populära skrivbordsappar hanterar användarlevererade URI: er och hittade koden för körning av kod i flera av dem. En av de appar jag kollade var KDE Discover App Store, som visade sig hantera opålitliga URI på ett osäkert sätt (CVE-2021-28117, KDE Security Advisory).
På vägen hittade jag snabbt flera allvarligare sårbarheter på andra marknader för fri programvara.
En avmaskad XSS med potential för leveranskedjeattacker på Pling-baserade marknader och en drive-by RCE som påverkar PlingStore-applikationsanvändare kan fortfarande utnyttjas.
Pling presenterar sig som en marknadsplats för kreatörer att ladda upp Linux-skrivbordsteman och grafik, bland annat, i hopp om att tjäna lite pengar från supportrar. Det består av två delar: koden som behövs för att driva din egen bling-basar och en Electron-baserad applikation som användare kan installera för att hantera sina teman från en Pling-marknadsplats. Webbkoden innehåller XSS-sårbarheten, medan klienten innehåller både XSS- och en RCE-sårbarhet. Pling driver flera webbplatser, från pling.com och store.kde.org till gnome-look.org och xfce-look.org.
Kärnan i problemet är att Pling-plattformen tillåter tillägg av multimediablock i HTML-format, till exempel för att bädda in en YouTube-video eller en bild. Koden som läggs till via formuläret valideras inte korrekt, vilket gör att skadlig kod kan läggas till förklädd som en bild och placera information i katalogen som kör JavaScript-kod när den visas. Om denna information är tillgänglig för användare med ett konto är det möjligt att initiera åtgärder i katalogen för den användarens räkning, inklusive att lägga till ett JavaScript-anrop till deras sidor, vilket i praktiken implementerar en sorts nätverksmask.
Dessutom har en sårbarhet identifierats i PlingStore-applikationen, skriven med Electron-plattformen, vilket gör att den kan navigera genom OpenDesktop-kataloger utan en webbläsare och installera paket som finns där. Denna sårbarhet i PlingStore gör att dess kod kan köras på användarens system.
När PlingStore-applikationen körs startas även ocs-manager-processen, som accepterar lokala anslutningar via WebSocket och kör kommandon som att ladda och starta applikationer i AppImage-format . Dessa kommandon ska överföras av PlingStore-applikationen, men på grund av bristande autentisering kan en begäran till ocs-manager skickas från användarens webbläsare. Om en användare öppnar en skadlig webbplats kan den initiera en anslutning till ocs-manager och få kod att köras på användarens system.
En XSS-sårbarhet har också rapporterats i katalogen extensions.gnome.org; i fältet med URL:en till plugin-programmets hemsida kan du ange JavaScript-kod i formatet "javascript:code" och när du klickar på länken kommer det angivna JavaScript-koden att startas istället för att öppna projektwebbplatsen.
Å ena sidan är problemet mer spekulativt , eftersom modereringen involverar platsen i katalogen extensions.gnome.org, och attacken kräver inte bara att man öppnar en specifik sida utan också att man explicit klickar på länken. Å andra sidan är det möjligt att moderatorn under verifieringsprocessen vill gå till projektets webbplats, kringgå länkformuläret och köra JavaScript-koden inom ramen för sitt konto.
Slutligen, om du är intresserad av att lära dig mer, kan du hitta detaljerna på följande länk.