Ve vývojovém nástroji Flatpak, který je určen k vytváření autonomních balíčků, které nejsou vázány na konkrétní distribuce Linuxu a jsou izolovány od zbytku systému, byla nalezena zranitelnost (CVE-2024-32462). Tato zranitelnost umožňuje škodlivé nebo kompromitované aplikaci dodávané v balíčku flatpak obejít nastavený režim sandboxové izolace a získat přístup k souborům v hlavním systému. Problém se projevuje pouze u balíčků, které používají portály Freedesktop (xdg-desktop-portal), které se používají k organizaci přístupu k prostředkům uživatelského prostředí z izolovaných aplikací. Zranitelnost byla opravena v opravách flatpak 1.15.8, 1.14.6, 1.12.9 a 1.10.9. Obchvatová cesta pro ochranu byla také navržena ve verzích xdg-desktop-portal 1.16.1 a 1.18.4.
Díky zranitelnosti může aplikace nacházející se v izolovaném prostředí používat rozhraní xdg-desktop-portal k vytvoření souboru „.desktop“ s příkazem pro spuštění aplikace z flatpak, což umožňuje přístup k souborům hlavního systému. K vystoupení z izolovaného prostředí se používají manipulace s parametrem „—command“, který se používá k předání názvu programu nacházejícího se uvnitř flatpak balíčku, který má být spuštěn v izolovaném prostředí. K nastavení izolovaného prostředí flatpak volá utilitu bwrap, předávající jí specifikované jméno programu. Například pro spuštění utility ls v izolovaném prostředí balíčku můžete použít konstrukci „flatpak run —command=ls org.gnome.gedit“, která povede k spuštění „bwrap ls“.
Podstatou zranitelnosti je, že pokud název programu začíná na znaky „—“, bude to utility bwrap chápáno jako vlastní volba. Například spuštění „flatpak run —command=—bind org.gnome.gedit / /host ls -l /host“ povede k vykonání „bwrap —bind / /host ls -l /host“, tedy název „—bind“ bude zpracován ne jako název spouštěné aplikace, ale jako volba bwrap.
Zranitelnost je komplikována tím, že D-Bus rozhraní „org.freedesktop.portal.Background.RequestBackground“ umožňuje aplikaci z balíčku Flatpak specifikovat jakýkoli příkaz k provedení pomocí „flatpak run —command“, a to včetně příkazů začínajících znakem „—“. Předpokládalo se, že předávání jakýchkoli příkazů je bezpečné, protože budou prováděny v izolovaném prostředí balíčku. Nebyla však zohledněna skutečnost, že příkazy začínající „—“ budou zpracovány jako možnosti nástrojem bwrap. Výsledkem je, že rozhraní xdg-desktop-portal může být použito k vytvoření souboru „.desktop“ s příkazem, který zneužívá zranitelnost.
Zdroj: opennet.ru
