Благодаря уязвимости, находящееся в изолированном окружении приложение может использовать интерфейс 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» с командой, эксплуатирующей уязвимость.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61024