LINUX.ORG.RU

Уязвимость во Flatpak, позволяющая выполнить код вне изолированного окружения

 , , ,


0

4

В опубликованном несколько часов назад корректирующем выпуске системы самодостаточных пакетов Flatpak 1.16.4, а также в экспериментальном выпуске 1.17.4, устранена уязвимость (CVE-2026-34078), позволяющая вредоносному или скомпрометированному приложению в формате Flatpak, обойти установленный режим sandbox-изоляции, получить доступ к файлам в основной системе и выполнить произвольный код вне режима изоляции. Проблеме присвоен критический уровень опасности (9.3 из 10).

Уязвимость присутствует в D-Bus сервисе flatpak-portal, обеспечивающем запуск «порталов», которые применяются для организации доступа к ресурсам основного окружения из изолированных приложений. Проблема вызвана тем, что сервис flatpak-portal позволяет приложению указывать в опции sandbox-expose файловые пути, которые из-за отсутствия должных проверок могут быть символическими ссылками, указывающими на произвольные части ФС.

Перед монтированием сервис раскрывает символическую ссылку и монтирует в sandbox-окружение путь, на который она указывает, что позволяет обойти изоляцию и получить доступ на чтение и запись к файлам хост-окружения. Для организации выполнения своего кода в системе, например, можно добавить автозапускаемый сценарий, такой как ~/.bashrc или ~/.profile, или изменить файл ~/.ssh/authorized_keys с ключами SSH.

Статус устранения уязвимости в дистрибутивах можно оценить на данных страницах (если страница недоступна, значит разработчики дистрибутива ещё не приступили к рассмотрению проблемы): Debian, Ubuntu, SUSE, RHEL, Gentoo, Arch, Fedora. В качестве обходного пути защиты можно отключить сервис flatpak-portal:

   sudo systemctl --global mask flatpak-portal.service && systemctl --user stop flatpak-portal.service

Помимо критической уязвимости, в новом выпуске устранено ещё три проблемы с безопасностью:

  • Возможность (CVE-2026-34079) удаления произвольного файла в файловой системе хост-системы. Проблема вызвана тем, что flatpak при очистке устаревшего кэша ld.so, не проверяет фактическое нахождение удаляемого файла в каталоге с кэшем.
  • Возможность чтения произвольных файлов в контексте system-helper на системах с настроенным репозиторием образов OCI через манипуляции с символическими ссылками.
  • Возможность вмешательства в обработку запросов на отмену загрузки приложений, позволяющего одному пользователю помешать другому пользователю остановить загрузку.

>>> Подробности на OpenNET



Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 5)
Ответ на: комментарий от REDDERa

А что делать, если дистр уже устарел

Вот как раз для этого и нужен AppImage, поэтому-то и не подходят всякие .deb, .rpm, .flatpak, .snap.

А appimage их вручную создать, невероятно муторно и сложно

Чушь. Крайне просто.

А тарболл, это

Статический билд с зависимостями в tar-архиве.

ChocoRobo
()
Ответ на: комментарий от ChocoRobo

Вот как раз для этого и нужен AppImage

AppImage не настолько переносим :) Если AppImage собран в относительной свежей системе и приложение зависит от glibc, то он не запустится на старой системе. Вот такой вот универсальный формат.

Статический билд с зависимостями в tar-архиве.

Значительное число приложений собрать чисто статически не получится, разве что если это что-то на расте или голанге, как раз из-за того самого glibc. И вообще если бы можно было всё собирать чисто статически, appimage был бы не нужен.

Gary ★★★★★
()
Ответ на: комментарий от Gary

Если AppImage собран в относительной свежей системе и приложение зависит от glibc, то он не запустится

Чушь. Правильно созданный AppImage с использованием sharun и его обертки quick-sharun не только значительно упрощает преобразование любого бинарного файла в портативный пакет без использования контейнеров или подобных уловок, но и содержит все необходимое и должен работать на любом дистрибутиве Linux, включая старые и основанные на musl. Благодаря uruntime, для работы AppImage вообще не требуется FUSE. Но даже если AppImage создан не правильно, но создан на довольно старом дистрибутиве, то работать он будет как на подобных старых системах с таким же glibc, так и на новых (но неправильно создавать не рекомендую всё равно, потому что переносимость хуже и завязка на glibc — такое себе).

Значительное число приложений собрать чисто статически не получится

То же касается и Windows. «Чисто статичиски» для абсолютно всех программ невозможно в целом без переписывания кусков кода и танцев с компиляторами. Но всё и не надо. Хватает многих.

как раз из-за того самого glibc

Нет, glibc тут не при чём.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 3)
Ответ на: комментарий от dmitry237

Ещё один прочитал новость и не понял о чём она :) Речь о выходе из песочницы, т.е. приложение с уязвимым флатпаком одинаково безопасно как приложение из пакетного менеджера.

А для чего он и вообще нужен, нельзя поставить приложение пакетным менеджером?

  1. Запуск софта по умолчанию в песочнице. Это нормальный современный подход, мейнтенеры чисто физически не могут гарантировать безопасность стороннего софта. И для проприетарщины хорошо подходит.

  2. Не надо зависеть от хотелок мейнтейнеров. Можно обновлять (или не обновлять) свой дистрибутив отдельно от рабочего софта.

Gary ★★★★★
()
Ответ на: комментарий от ChocoRobo

Правильно созданный AppImage с использованием sharun и его обертки quick-sharun не только значительно упрощает преобразование любого бинарного файла в портативный пакет без использования контейнеров или подобных уловок, но и содержит все необходимое и должен работать на любом дистрибутиве Linux

Здорово, правда я в природе «правильно собранного» AppImage наверное никогда не встречал. Хорошо что придумали как сделать AppImage переносимым, плохо что это опциональный малоизвестный подход. Есть какой-то мейнстримный софт который официально готовит «правильные» appimage?

Нет, glibc тут не при чём.

А кто причём? От него зависит огромная куча софта, в нём от динамической линковки зависит dlopen + через него ещё грузится резвольвинг dns, при статической линковке glibc начинаются всякие артефакты, официально это не рекомендуется.

Gary ★★★★★
()
Ответ на: комментарий от Gary

Есть какой-то мейнстримный софт

Зависит от определения. Я много чем пользуюсь так. mpv, например (первым на ум пришло).

А кто причём?

Особенности стандартов для тех или иных языков, а в первую очередь — компиляторы и их различия в версиях. Именно поэтому статически собирается далеко не всё, и софт для этого приходится патчить.

ChocoRobo
()
Ответ на: комментарий от anonmyous

Браузер сам создаёт сэндоксы

Смотри шире, помимо браузера ещё куча всякого разного софта

selinux и его аналоги - куда легковеснее

Совершенно другое применение, это дополнительный слой защиты для системных компонентов.

Оно никак не защищает юзерские данные от прикладного софта, не позволяет отгородить файлы, уведомления и прочее.

Ты можешь нарулить правило, чтобв запретить доступ в определённые директории, но это неудобно

Флатпак же позволяет сделать это прозрачно для юзера. Приложение работает в собственной песочнице, но может обмениваться данными с хост-системой посредством порталов. Юзер видит стандартные файл-пикеры, вся магия спрятана внутри. Приложение не может видеть/изменять файлы без явного разрешения от юзера.

Механизм аналогичен и, возможно, подсмотрен у макоси. К реализации есть вопросы, но аналогов нет.

MaZy ★★★★★
()
Последнее исправление: MaZy (всего исправлений: 2)
Ответ на: комментарий от Gary

Ну и зачем его запускать в песочнице? И какие такие хотелки ментейнеров, я вот обновился, прилетели обновления. Все ок и что? Мне для того, что установлено не нужна песочница. А вот флэтпак по моему мнению, это лишнее. Может конечно кому-то не хватает софта в репах дистрибутива, но я не из этой категории. Поэтому сужу по своего личному опыту и не понимаю тех, кто тянет гигантский флэтпак-рантайм. Просто физически больно на все это смотреть.

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Зато его можно, собрать в бандл и привязать к видеокарте. Даже когда, это будет дистр 10ти летней давности, всё будет работать отличненько) В этом и соль флатпака, там есть разные расширения, темы, иконки, ffmpeg, кодеки) Сразу всё и собирать не надо, куда проще чем appimage делать:( Плюс не вяжется с видюхой.

REDDERa
()
Ответ на: комментарий от REDDERa

Даже когда, это будет дистр 10ти летней давности, всё будет работать отличненько

Тут выше кто-то жаловался что разрабы сменили формат пакетов флатпака из-за чего все старые дистры отвалились от новых версий приложений с флатхаба.

ptah_alexs ★★★★★
()
Ответ на: комментарий от MaZy

Смотри шире, помимо браузера ещё куча всякого разного софта

Если этот софт не взаимодействует с не доверенным JS-кодом, то ему сэндбокс и не нужен. Браузеру - да, нужен. Вайну - тоже.

Оно никак не защищает юзерские данные от прикладного софта, не позволяет отгородить файлы, уведомления и прочее.

Идея то и не в этом. Просто политика селинукса не позволит какому-нить текстовому редактору открыть сетевое соединение. А дальше - хоть трава ни расти: этот редактор до ваших файлов и так всегда может дотянуться. Как, иначе, ему с ними работать.

Сэндбоксить каждое приложение - это не то, чтобы плохо, но огромные накладные расходы, а проблема решается и другими методами.

anonmyous ★★★
()
Ответ на: комментарий от MaZy

Юзер видит стандартные файл-пикеры, вся магия спрятана внутри

Так эта магия не может работать by design. Например, возьмем приложение которое работает с «проектом», а проект представляет собой папку с набором файлов. В таком приложении, в диалоге выбора проекта, выбирается папка, а не конкретный файл. В порталах, это вообще никак не учтено, там можно пробросить только файл в песочницу, но не папку проекта. В результате, флатпаку с этим приложением сразу дается полный доступ к хомяку, чтобы оно могло просто работать. Ну и что, зачем эту ерунду наворотили, которая не работает в реальной жизни, и которую по умолчанию все отрубают, кстати без ведома пользователя даже, потому что это же не андроид, где пользователь при первом запуске выдает разрешения. Во флатпаке, все разрешения на полный доступ уже выданы сборщиком пакета, до нас.

James_Holden ★★★★★
()
Ответ на: комментарий от ptah_alexs

По сути нет, только браузеры страдают, несовместимостью, требуют 1.8.2 версию флатпака:(

REDDERa
()
Ответ на: комментарий от REDDERa

Даже когда, это будет дистр 10ти летней давности, всё будет работать отличненько)

Да ничего не будет работать через 10 лет, это просто смешно. Ничего не запустится. За 10 лет они 10 раз сломают совместимость.

В этом и соль флатпака

Соль флатпака в том, что он by design не может работать как это задумано, и даже обновляться нормально не может, ибо они не осилили даже зеркала. До сих пор.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Так эта магия не может работать by design. Например, возьмем приложение которое работает с «проектом», а проект представляет собой папку с набором файлов. В таком приложении, в диалоге выбора проекта, выбирается папка, а не конкретный файл. В порталах, это вообще никак не учтено, там можно пробросить только файл в песочницу, но не папку проекта.

  1. Насколько я знаю, оно вполне умеет монтировать папки таким образом через fuse и /run/user/$UID/doc. Уточни этот вопрос
  2. В любом случае, даже если у флатпака есть проблемы и ограничения, это проблемы его реализации, но не идеи

Я не оправдываю и защищаю флатпак, я говорю о том, что изоляция приложений абсолютно необходима, и без нее невозможно говорить вообще о какой-либо безопасности. И, к сожалению, альтернатив флатпаку в линуксе нет. Имеем что имеем

MaZy ★★★★★
()
Ответ на: комментарий от MaZy

И, к сожалению, альтернатив флатпаку в линуксе нет.

Очень даже есть, и все, кому надо, пользуются: лендлоком и секкомпом. Но не каждой проге требуется сэндбокс.

anonmyous ★★★
()
Ответ на: комментарий от MaZy

что изоляция приложений абсолютно необходима

Очень спорное мнение. На андроиде, да, я соглашусь именно с такой формулировкой. На линуксе, это просто не соответствует набору решаемых системой задач. Линукс это свободная ОС, а свободным приложениям не нужна никакая изоляция. А если приложению она гипотетически нужна, значит такое приложение надо выбросить из линукса на помойку, и это решит вопрос намного эффективнее чем флатпак. Исключение - браузер, его конечно выбросить на помойку надо бы первым, но есть реальный мир, и в нем надо жить. Поэтому, bubblewrap или подобная песочница для запуска браузера вполне может, и по хорошему должна, применяться, раз уж мы как цивилизация на планете, такие тупые и дошли до такого абсурда, как современный веб. Что касается остальных свободных приложений, то нафейхоа их изолировать?

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

А если приложению она гипотетически нужна, значит такое приложение надо выбросить из линукса на помойку,

Что за ерунда, просто такое приложение будет использовать секкомп с лендлоком.

anonmyous ★★★
()
Ответ на: комментарий от MaZy

Я не оправдываю и защищаю флатпак

А по-моему, гипертрофированный акцент на изоляции в свободной ОС, как раз логически может быть объяснен исключительно желанием хоть как-то оправдать ненужный флатпак. Возможно, чисто подсознательно.

James_Holden ★★★★★
()
Ответ на: комментарий от anonmyous

просто такое приложение будет использовать секкомп с лендлоком

Эти непонятные слова тоже выбросить на помойку, и не дурить голову.

James_Holden ★★★★★
()
Ответ на: комментарий от MaZy

Я не оправдываю и защищаю флатпак, я говорю о том, что изоляция приложений абсолютно необходима

Именно для этого существует bubblewrap (и его графическая домохозяйская версия Bubblejail, а для олдов консольный Firejail, хотя лично это не моя чашка чая). Зачем тут ещё какие-то мутные Плоскопакеты, Защёлки и прочие непортативные околоцентрализованные «магазины приложений» — решительно не понятно.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 3)
Ответ на: комментарий от James_Holden

В порталах, это вообще никак не учтено, там можно пробросить только файл в песочницу, но не папку проекта.

Отнюдь: что в FileChooser, что в FileTransfer можно работать как с файлами, так и с каталогами.

Rootlexx ★★★★★
()
Ответ на: комментарий от ChocoRobo

Именно для этого существует bubblewrap (и его графическая домохозяйская версия Bubblejail, а для олдов консольный Firejail, хотя лично это не моя чашка чая).

Flatpak и есть обёртка над bubblewrap, и является её самой жизнеспособной версией.

Конструировать свои bubblewrap контейнеры — прекрасно, но это требует тонкой настройки, и понимания процессов. И, в большинстве случаев, подразумевает переиспользование механизмов флатпак, например использование xdg-dbus-proxy для прокидывания уведомлений

MaZy ★★★★★
()
Ответ на: комментарий от Rootlexx

Ну и что это даст. В проекте будет файл, который надо открыть, это основной файл проекта. А дальше приложение должно читать остальные файлы из этой же папки. А они не проброшены в песочницу. Ну и что дальше.

James_Holden ★★★★★
()
Ответ на: комментарий от MaZy

Flatpak и есть обёртка над bubblewrap

Нет, это не «просто обёртка над bubblewrap». Просто обёртка над bubblewrap — Bubblejail, которая является просто графической программой, которая помогает домохозяйкам запускать программы с помощью bubblewrap. А Плоскопакеты/Защёлки — это «магазины приложений» с их адской инфраструктурой зависимостей, где пол гномокед качать надо и прочего барахла, где отсутствует переносимость приложений между устройствами/системами, где более низкая производительность (особенно касается Snap, который даже на NVMe умудряется тормозить, не говоря уже про HDD) и прочие-прочие ограничения.

но это требует тонкой настройки, и понимания процессов

Тыкнуть мышкой по значку Bubblejail, нажать кнопочку в программе на запуск через него программы (можно оставить все опции по умолчанию или одним кликом включить-отключить нужные разрешения) даже проще, чем ковыряться в магазинах приложений, пытаясь отыскать, где там отзывать/выдавать права доступа. И уж тем более легче технически, чем выкачивать все эти бандлы зависимостей «на всякий случай».

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 5)
Ответ на: комментарий от gagarin0

что люди только не делают, но только не ставят Fedora Atomic Desktop

И это правильно. Что только ни сделаешь в этой жизни, но ставить всякий треш вроде Fedora Atomic Desktop или плоскопакетов — это какое-то странное извращение.

ChocoRobo
()
Ответ на: комментарий от ChocoRobo

Я зайду с козырей, POSIX это странное извращение, вот откуда растут ноги, а все эти изыски уже последствия

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от James_Holden

« Да ничего не будет работать через 10 лет, это просто смешно. Ничего не запустится. За 10 лет они 10 раз сломают совместимость.»

Если собрать, программы сейчас, и законсервировать всё вполне будет работать)

« Соль флатпака в том, что он by design не может работать как это задумано, и даже обновляться нормально не может, ибо они не осилили даже зеркала. До сих пор.»

Ну программы, получают обновления, значит всё хорошо)

REDDERa
()

Можно говорить, много негатива про флатпак, но зато он собирается за пару минут, а тот же appimage, особенно неоднозначный, с большим трудом. И например в antix проблема, appimage там вообще не запустить, даже через терминал , что за напасть то…

REDDERa
()
Ответ на: комментарий от dmitry237

Ну и зачем его запускать в песочнице?

Чтобы минимизировать потенциальный ущерб от скомпрометированного или глючного софта. Да, это редкость (хотя кмк идёт рост распространения supply chain attack), но в целом лучше передбеть.

И какие такие хотелки ментейнеров, я вот обновился, прилетели обновления

Например у блендера своё апи и плагины для него пишутся под конкретные версии блендера. Если постоянно его обновлять, можно в какой-то момент остаться без важных плагинов. Одним апдейтом рабочий инструмент превратился в красноглазие на вечер.

Поэтому сужу по своего личному опыту и не понимаю тех, кто тянет гигантский флэтпак-рантайм. Просто физически больно на все это смотреть.

Это пара процентов от дискового пространства, я готов этим пожертвовать ради этих двух вещей.

Gary ★★★★★
()
Ответ на: комментарий от James_Holden

Линукс это свободная ОС, а свободным приложениям не нужна никакая изоляция.

В свободном софте бывают и уязвимости, и вредоносный код, и баги, приводящие к повреждению данных.

К тому же реалии таковы, что не все задачи решаются свободным софтом.

Gary ★★★★★
()
Ответ на: комментарий от Gary

от скомпрометированного или глючного софта

Ну вот скомпромитирован сам flatpak, его наверное нужно установить в snap?

dmitry237 ★★★★★
()
Ответ на: комментарий от gagarin0

что люди только не делают, но только не ставят Fedora Atomic Desktop

Атомарные системы — это абсолютно и единственно правильный подход. Справедливое замечание

Но я предпочитаю NixOS😁

MaZy ★★★★★
()
Последнее исправление: MaZy (всего исправлений: 1)
Ответ на: комментарий от MaZy

Возведение какой-то частной технической идеи в абсолют, это изначально полная глупость. Поэтому, заявления что вот эта очередная ересь - это «единственно правильный подход» - не более чем веселая клоунада.

Это и правда, очень очень смешно, для тех, у кого ментальный возраст не застрял на отметке 14 лет.

Нет единственно правильных подходов, нигде, ни в какой сфере. Есть просто подходы, и есть польза, которую они могут дать в определенных условиях, больше или меньше.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Idempotency, Immutability, Atomicity, IaC, Principle of Least Privilege, Declarative approach, Drift Detection, Zero Trust — это база, это промышленный стандарт. Домохозяйкам не нужно, хотя вопрос спорный

Тот, кто это не понимает, просто застрял где-то в нулевых

MaZy ★★★★★
()
Ответ на: комментарий от James_Holden

В проекте будет файл, который надо открыть, это основной файл проекта. А дальше приложение должно читать остальные файлы из этой же папки. А они не проброшены в песочницу

Исходно ты заявлял совсем другой сценарий:

Например, возьмем приложение которое работает с «проектом», а проект представляет собой папку с набором файлов. В таком приложении, в диалоге выбора проекта, выбирается папка, а не конкретный файл.

Но и новый технически вполне решаем: помимо пробрасывания выбранного файла пробрасывается и каталог, в котором он находится. Сейчас это не реализовано, да.

Rootlexx ★★★★★
()
Ответ на: комментарий от gagarin0

Какие направления лол, это просто лозунги для подростков. Да, в частных задачах реализация этих идей может быть полезна, но зачем ими махать как флагами на параде? Вы там вообще, в себе?

James_Holden ★★★★★
()
Ответ на: комментарий от gagarin0

Какие-то прыщавые, давно не трогавшие травы, пересидели у компа и решили, что есть Atomicity, и она решает какие-то проблемы. И прыщавый - теперь пророк ее. Что вообще происходит?

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

лозунги

без этих «лозунгов» на рынке труда делать нечего, конечно всегда можно найти свою нишу, но это будет что-то вроде ручного редактироавние .yml файлов

лозунги для подростков

Мулька для 14-летних адептов.

не застрял на отметке 14 лет.

я то в себе, а вот насчет вашей менталки я не уверен

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от gagarin0

на рынке труда делать нечего

На рынке труда, есть миллион профессий, для которых вообще не нужен комп. И 10 миллионов профессий, где комп нужен на уровне хомяка. Ты о чем. Я же говорю - пересидели за экраном.

я то в себе, а вот насчет вашей менталки я не уверен

Я понимаю, что сложно принять ситуацию, когда тебе говорят, что условно, ты и все твое окружение свернули не туда. Это как прийти в секту и заявить, что материя первична, окститесь.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

ты и все твое окружение свернули не туда.

о, оказывается миллионы хомячков ошиблись, ладно, видимо вы борец с системой, за сим прощаюсь

gagarin0
()
Ответ на: комментарий от gagarin0

Миллионы хомячков чихать хотели на ваш комплюхтер, и что там внутри как. А вот некоторые баззворд-сектанты ошибаются, переоценивая свои догматы. Да.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Что и требовалось доказать

Ну так это и не является принципиальной нерешаемой проблемой. И уж тем более, текущая невозможность реализовать такой нишевый сценарий никак не влияет на применимость для подавляющего большинства остальных приложений.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

Он сам себе прокурор, сначала выдумал преступление, сам себе его доказал и вынес приговор, и точка.

Больше настораживает его нездоровая тяга к подросткам 14 летнего возраста, но это уже не наша забота

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от MaZy

в каких граничных условиях это промышленный стандарт?

т.е. оно полезно достаточной относительной дешевизне сети , достаточно волатильных потоках обслуживания(которое делает выгодным горизонтальное мерцание воркерами)

и ваще упор в большую чистоту и «исполнитель_без_автономной_памяти»

т.е. реально из какой точки вы видите мир что вами перечисленные термины универсально применимы во всём вами воспринемаемом мире?

qulinxao3 ★☆
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.