Уязвимост във Flatpak позволи кодът да бъде изпълнен извън пясъчника 

уязвимост

Ако бъдат използвани, тези пропуски могат да позволят на нападателите да получат неоторизиран достъп до чувствителна информация или като цяло да причинят проблеми

Преди няколко дни новината гръмна това Беше открита уязвимост във Flatpak (системата за изграждане, разпространение и изпълнение на изолирани среди на настолни приложения на Linux). Каталогизиран под CVE-2024-32462, заедно с класификацията CWE-88, откритата уязвимост разрешено излизане от пясъчника чрез RequestBackground.

Тази уязвимост засяга определени специфични версии на Flatpak, и въздействието му може да бъде сериозно, тъй като специално създадено приложение може да изпълни произволен код извън пясъчника, компрометирайки потребителската информация.

Относно уязвимостта CVE-2024-32462

Споменава се, че уязвимост позволява злонамерено или компрометирано приложение разпространявани с помощта на пакетен формат flatpak байпас режим на изолация от зоната за тестване и достъп до основните системни файлове. Този проблем възниква само в пакети, които използват портали на Freedesktop (xdg-desktop-portal), използвани за улесняване на достъпа до ресурси в средата на потребителя от изолирани приложения.

Възможно е да се прехвърли произволен интерфейс на командния ред към интерфейса на портала org.freedesktop.portal.Background.RequestBackground от приложение Flatpak. Това обикновено е безопасно, тъй като можете да посочите само команда, която съществува в средата на пясъчника; но когато създаден обект на командния ред се преобразува в –commandarguments и, приложението може да постигне същия ефект от предаване на аргументи директно на bwrapy, като по този начин се постига избягване на пясъчна кутия.

Решението е Flatpak да използва аргумента –to bwrap, който го кара да спре опциите за обработка, преди да добави командата, посочена от атакуващия. Аргументът – се поддържа от bubblewrap 0.3.0 и всички поддържани версии на Flatpak вече изискват поне тази версия на bubblewrap.

Използване на тази уязвимост позволява на приложение в пясъчна среда да използва интерфейса на xdg-desktop-portal за създаване на файл «.десктоп» с команда, която стартира приложението от flatpak, като по този начин позволява достъп до файлове в основната система.

Същността на уязвимостта, която ви позволява да избегнете пясъчника лежи аргументът – команда de бягане с плосък пакет, който очаква да получи команда за изпълнение в посоченото приложение Flatpak, заедно с някои незадължителни аргументи. Чрез манипулиране на параметъра «– команда«, който се използва за предаване на името на програмата, беше възможно да се предаде име на опция, както например – обвързванеи това беше погрешно изтълкувано като опция за bwrap за изпълнение на определената програма в пакета в изолирана среда.

Практически пример за това споменато, е да стартирате помощната програма ls в среда на изолиран пакет, вие използвате нещо подобно на това:

"flatpak run --command=ls org.gnome.gedit"

Което ще изпълни:

"bwrap ...lots of stuff... --bind / /host ls -l /host".

В този случай името „–bind“ няма да се счита за името на приложението, което да се изпълнява, а по-скоро за опция за bwrap.

Като такава, уязвимостта се крие във факта, че ако името на програмата започва със знаците «–«, помощната програма bwrap ще го интерпретира като своя собствена опция. Първоначално изпращането на команди по този начин не се смяташе за опасно, тъй като те ще работят в изолирана среда от пакета. Въпреки това не беше взето под внимание, че командите, започващи с "–", ще бъдат интерпретирани като опции от помощната програма bwrap. В резултат на това интерфейсът на xdg-desktop-portal може да бъде използван за създаване на файл ".desktop" с команда, която използва тази уязвимост.

Аргументът — се поддържа от bubblewrap 0.3.0 и всички поддържани версии на Flatpak вече изискват поне тази версия на bubblewrap. Споменава се, че едно от решенията това е версия 1.18.4 на xdg-desktop-portal вече не позволява на Flatpak приложенията да създават нови файлове .desktop за команди, които започват с -.

И накрая, заслужава да се спомене, че уязвимостта е коригирана в версиите с корекции на Flatpak 1.15.8, 1.14.6, 1.12.9 и 1.10.9. Освен това е предложена корекция на защитата във версии 1.16.1 и 1.18.4 на xdg-desktop-portal.

Можете да проверите версията на Flatpak, която имате, като изпълните следната команда:

flatpak --version

В случай, че използвате уязвима версия или ако искате да актуализирате вашата версия на Flatpak, просто изпълнете една от следните команди:

Ubuntu/Debian и производни:

sudo apt upgrade flatpak

RHEL/Fedora и производни:

sudo dnf upgrade flatpak

Arch Linux и производни:

sudo pacman -Syu flatpak

Ако сте заинтересовани да научите повече за това, можете да проверите подробностите В следващия линк.