В инструментарии для создания самодостаточных пакетов Flatpak выявлена уязвимость (CVE-2021-21261), позволяющая обойти режим sandbox-изоляции и выполнить произвольный код в окружении основной системы. Проблема устранена в версиях 1.10.0 и 1.8.5, но позднее в исправлении всплыло регрессивное изменение, вызывающее проблемы при сборке на системах с прослойкой bubblewrap, установленной с флагом setuid. Регрессия устранена в выпуске 1.10.1 (обновление для ветки 1.8.x пока недоступно).
Уязвимость присутствует в D-Bus сервисе flatpak-portal, обеспечивающем запуск “порталов”, которые применяются для организации доступа к ресурсам вне контейнера. Сервис позволяет изолированным приложениям запустить собственный дочерний процесс в новом sandbox-окружении, к которому применяются те же или более усиленные настройки изоляции (например, для обработки не заслуживающего доверия содержимого). Уязвимость заключается в том, что flatpak-portal передаёт переменные окружения, специфичные для обращающегося к сервису процесса, в обработчики, не изолированные от основной системы (например, запуская команду “flatpak run”). Вредоносное приложение может выставить переменные окружения, влияющие на работу “flatpak run”, и запустить любой код на стороне хост-окружения.
Следует напомнить, что многие разработчики flatpak-пакетов отключают режим изоляции или оставляют полный доступ к домашнему каталогу. Например, с ограниченным режимом изоляции поставляются пакеты GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity и VLC. В случае компрометации пакетов с доступом к домашнему каталогу, несмотря на наличие в описании пакета метки “sandboxed”, атакующему для выполнения своего кода достаточно изменить файл ~/.bashrc.