Një startup me seli në Berlin ka zbuluar një dobësi të ekzekutimit të kodit në distancë (RCE) dhe një të metë të skriptimit ndërfaqësor (XSS) në Pling, i cili përdoret nga disa katalogë aplikacionesh të ndërtuar në këtë platformë. Kjo dobësi mund të lejojë që kodi JavaScript të ekzekutohet në kontekstin e përdoruesve të tjerë. Faqet e prekura përfshijnë disa nga katalogët kryesorë të aplikacioneve me burim të hapur, të tilla si store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org dhe pling.com, ndër të tjera.
Siguria Pozitive, e cila gjeti vrimat, tha që defektet janë ende të pranishme në kodin Pling dhe se mirëmbajtësit e tij nuk janë përgjigjur raporteve të cenueshmërisë.
Në fillim të këtij viti, ne pamë se si aplikacionet e njohura të desktopit trajtojnë URI-të e furnizuara nga përdoruesit dhe gjetëm dobësi të ekzekutimit të kodit në disa prej tyre. Një nga aplikacionet që kam kontrolluar ishte Dyqani i Zbatimeve të KDE, i cili doli të merret me URI-të e pasigurta në një mënyrë të pasigurt (CVE-2021-28117, Këshillues i Sigurisë i KDE).
Gjatë rrugës, unë shpejt gjeta disa dobësi më serioze në tregjet e tjera të softuerit të lirë.
Një XSS i krimbuar me potencial për sulme të zinxhirit të furnizimit në tregjet e bazuara në Pling dhe një nxitje nga RCE që ndikon në përdoruesit e aplikacioneve PlingStore mund të shfrytëzohet ende.
Pling paraqitet si një treg për krijuesit për të ngarkuar tema dhe grafika për desktop Linux, ndër të tjera, duke shpresuar të fitojnë para nga mbështetësit. Ai vjen në dy pjesë: kodin e nevojshëm për të drejtuar tregun tuaj të bling dhe një aplikacion të bazuar në Electron që përdoruesit mund ta instalojnë për të menaxhuar temat e tyre nga një treg Pling. Kodi i uebit përmban dobësinë XSS, ndërsa klienti përmban si dobësinë XSS ashtu edhe një dobësi RCE. Pling fuqizon disa faqe interneti, nga pling.com dhe store.kde.org deri te gnome-look.org dhe xfce-look.org.
Thelbi i problemit është se platforma Pling lejon shtimin e blloqeve multimediale në format HTML, për shembull, për të integruar një video ose një imazh në YouTube. Kodi i shtuar përmes formularit nuk është validuar siç duhet, duke lejuar që kodi keqdashës të shtohet i maskuar si imazh dhe të vendosë informacion në drejtori që do të ekzekutojë kodin JavaScript kur shikohet. Nëse ky informacion është i arritshëm për përdoruesit me një llogari, atëherë është e mundur të iniciohen veprime në drejtori në emër të atij përdoruesi, duke përfshirë shtimin e një thirrjeje JavaScript në faqet e tyre, duke zbatuar në mënyrë efektive një lloj krimbi rrjeti.
Për më tepër , është identifikuar një dobësi në aplikacionin PlingStore, i shkruar duke përdorur platformën Electron, e cila i lejon atij të lundrojë nëpër drejtoritë OpenDesktop pa një shfletues dhe të instalojë paketa që gjenden atje. Kjo dobësi në PlingStore lejon që kodi i tij të ekzekutohet në sistemin e përdoruesit.
Kur aplikacioni PlingStore është në ekzekutim, fillon edhe procesi ocs-manager, i cili pranon lidhje lokale nëpërmjet WebSocket dhe ekzekuton komanda të tilla si ngarkimi dhe hapja e aplikacioneve në formatin AppImage . Këto komanda supozohet të transmetohen nga aplikacioni PlingStore, por në fakt, për shkak të mungesës së autentifikimit, një kërkesë te ocs-manager mund të dërgohet nga shfletuesi i përdoruesit. Nëse një përdorues hap një faqe interneti keqdashëse, ai mund të fillojë një lidhje me ocs-manager dhe të shkaktojë ekzekutimin e kodit në sistemin e përdoruesit.
Një dobësi XSS është raportuar gjithashtu në direktorinë extensions.gnome.org; në fushën me URL-në e faqes kryesore të plugin-it, mund të specifikoni kodin JavaScript në formatin "javascript:code" dhe kur të klikoni në lidhje, JavaScript-i i specifikuar do të nisë në vend që të hapet faqja e projektit.
Nga njëra anë, problemi është më spekulativ , pasi moderimi përfshin vendndodhjen në direktorinë extensions.gnome.org, dhe sulmi kërkon jo vetëm hapjen e një faqeje specifike, por edhe klikimin e drejtpërdrejtë të lidhjes. Nga ana tjetër, është e mundur që gjatë procesit të verifikimit, moderatori mund të dëshirojë të shkojë në faqen e internetit të projektit, të anashkalojë formularin e lidhjes dhe të ekzekutojë kodin JavaScript brenda kontekstit të llogarisë së tij.
Së fundmi, nëse jeni të interesuar të mësoni më shumë, mund t'i gjeni detajet në lidhjen e mëposhtme.