Берлински стартъп разкри уязвимост за отдалечено изпълнение на код (RCE) и недостатък за междусайтово скриптиране (XSS) в Pling, който се използва от няколко каталога с приложения, изградени на тази платформа. Тази уязвимост може да позволи изпълнението на JavaScript код в контекста на други потребители. Засегнатите сайтове включват някои от водещите каталози с приложения с отворен код, като store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org и pling.com, наред с други.
Положителната сигурност, която откри дупките, заяви, че грешките все още присъстват в кода на Pling и че нейните поддръжници не са отговорили на докладите за уязвимост.
По-рано тази година разгледахме как популярните приложения за настолни компютри се справят с предоставените от потребителя URI и открихме уязвимости при изпълнение на код в няколко от тях. Едно от приложенията, които проверих, беше KDE Discover App Store, което се оказа, че обработва ненадеждни URI по несигурен начин (CVE-2021-28117, KDE Security Advisory).
По пътя бързо открих няколко по-сериозни уязвимости на други пазари на свободен софтуер.
Червеният XSS с потенциал за атаки по веригата на доставки на пазарите, базирани на Pling, и RCE, засягащ потребителите на приложението PlingStore, все още могат да бъдат използвани.
Pling се представя като платформа за творци, където те могат да качват теми и графики за десктоп за Linux, наред с други неща, с надеждата да спечелят пари от поддръжници. Платформата се състои от две части: кодът, необходим за стартиране на собствен базар за блясък, и приложение, базирано на Electron, което потребителите могат да инсталират, за да управляват темите си от платформа за Pling. Уеб кодът съдържа XSS уязвимостта, докато клиентската версия съдържа както XSS, така и RCE уязвимост. Pling захранва няколко сайта, от pling.com и store.kde.org до gnome-look.org и xfce-look.org.
Същността на проблема е, че платформата Pling позволява добавянето на мултимедийни блокове в HTML формат, например за вграждане на видеоклип от YouTube или изображение. Кодът, добавен чрез формуляра, не е правилно валидиран, което позволява добавянето на злонамерен код, маскиран като изображение , и поставянето на информация в директорията, която ще изпълнява JavaScript код при преглед. Ако тази информация е достъпна за потребители с акаунт, тогава е възможно да се инициират действия в директорията от името на този потребител, включително добавяне на JavaScript извикване към техните страници, като по този начин ефективно се внедрява вид мрежов червей.
Освен това , в приложението PlingStore, написано с помощта на платформата Electron, е идентифицирана уязвимост , която му позволява да навигира през директории на OpenDesktop без браузър и да инсталира намерени там пакети. Тази уязвимост в PlingStore позволява на кода му да се изпълнява на системата на потребителя.
Когато приложението PlingStore работи, се стартира и процесът ocs-manager, който приема локални връзки чрез WebSocket и изпълнява команди като зареждане и стартиране на приложения във формат AppImage . Тези команди би трябвало да се предават от приложението PlingStore, но всъщност, поради липсата на удостоверяване, от браузъра на потребителя може да бъде изпратена заявка към ocs-manager. Ако потребителят отвори злонамерен уебсайт, той може да инициира връзка с ocs-manager и да предизвика изпълнение на код в системата на потребителя.
Съобщава се и за XSS уязвимост в директорията extensions.gnome.org; в полето с URL адреса на началната страница на плъгина можете да посочите JavaScript код във формат „javascript:code“ и когато щракнете върху връзката, вместо да се отваря сайтът на проекта, ще се стартира посоченият JavaScript.
От една страна, проблемът е по-скоро спекулативен , тъй като модерирането включва местоположението в директорията extensions.gnome.org, а атаката изисква не само отваряне на конкретна страница, но и изрично кликване върху връзката. От друга страна, възможно е по време на процеса на проверка модераторът да поиска да посети уебсайта на проекта, да заобиколи формата за връзка и да изпълни JavaScript кода в контекста на своя акаунт.
И накрая, ако се интересувате да научите повече, можете да намерите подробностите на следния линк.