Уязвимост във flatpak, която позволява да се заобиколи изолацията на sandbox-а

В инструмента за Flatpak, предназначен за създаването на самостоятелни пакети, независими от конкретни дистрибуции на Linux и изолирани от останалата част на системата, беше открита уязвимост (CVE-2024-32462). Уязвимостта позволява на злонамерено или компрометирано приложение, предоставяно в пакета flatpak, да заобиколи установения режим на sandbox-изолация и да получи достъп до файлове в основната система. Проблемът се проявява само в пакети, използващи портали на Freedesktop (xdg-desktop-portal), предназначени за организиране на достъп до ресурси на потребителското обкръжение от изолирани приложения. Уязвимостта е отстранена в корективните актуализации на flatpak 1.15.8, 1.14.6, 1.12.9 и 1.10.9. Обходен маршрут за защита е предложен също така в изданията на xdg-desktop-portal 1.16.1 и 1.18.4.

Благодарение на уязвимостта, приложението, което се намира в изолирано обкръжение, може да използва интерфейса xdg-desktop-portal за създаване на файл «.desktop» с команда за стартиране на приложението от flatpak, която позволява достъп до файлове на основната система. За излизане от изолираната среда се използват манипулации с параметъра «—command», който се прилага за предаване на името на програмата, намираща се в flatpak-пакета, която трябва да се стартира в изолирано обкръжение. За настройка на изолираната среда flatpak извиква утилитата bwrap, предавайки й посоченото име на програмата. Например, за стартиране на утилитата ls в изолираното обкръжение на пакета може да се използва конструкцията «flatpak run —command=ls org.gnome.gedit», която ще доведе до стартиране на «bwrap ls».

Същността на уязвимостта е, че ако името на програмата започва с символите «—«, то ще бъде възприето от утилитата bwrap като собствена опция. Например, стартирането на «flatpak run —command=—bind org.gnome.gedit / /host ls -l /host» ще доведе до изпълнение на «bwrap —bind / /host ls -l /host», т.е. името «—bind» ще бъде обработено не като име на стартираното приложение, а като опция на bwrap.

Уязвимостта се усложнява от факта, че D-Bus интерфейсът «org.freedesktop.portal.Background.RequestBackground» позволява на приложение от пакета Flatpak да зададе произволна команда за изпълнение с помощта на «flatpak run —command», включително и такава, която започва с символа «—». Предполагаше се, че предаването на произволни команди е безопасно, тъй като те ще бъдат изпълнени в изолирана среда на пакета. Но не беше взето предвид, че командите, започващи с «—», ще бъдат обработвани като опции от утилитата bwrap. В резултат на това, интерфейсът xdg-desktop-portal може да се използва за създаване на файл «.desktop» с команда, експлоатираща уязвимостта.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster