The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Уязвимость в firejail, позволяющая получить root-доступ в системе

12.06.2022 09:24

В утилите для изолированного выполнения приложений Firejail выявлена уязвимость (CVE-2022-31214), позволяющая локальному пользователю получить права root в основной системе. В открытом доступе имеется рабочий эксплоит, проверенный в актуальных выпусках openSUSE, Debian, Arch, Gentoo и Fedora с установленной утилитой firejail. Проблема устранена в выпуске firejail 0.9.70. В качестве обходного пути защиты можно выставить в настройках (/etc/firejail/firejail.config) параметры "join no" и "force-nonewprivs yes".

Firejail использует для изоляции механизм пространств имён (namespaces), AppArmor и фильтрацию системных вызовов (seccomp-bpf) в Linux, но для настройки изолированного запуска требует повышенных привилегий, которые получает через привязку к утилите флага suid root или запуск при помощи sudo. Уязвимость вызвана ошибкой в логике работы опции "--join=<PID>", предназначенной для подключения к уже работающему изолированному окружению (аналог команды login для sandbox-окружения) с определением окружения по работающему в нём идентификатору процесса. На этапе до сброса привилегий firejail определяет привилегии указанного процесса и применяет их к новому процессу, подключаемому к окружению при помощи опции "--join".

Перед подключением осуществляется проверка, запущен ли указанный процесс в окружении firejail. Данная проверка оценивает наличие файла /run/firejail/mnt/join. Для эксплуатации уязвимости атакующий может симулировать фиктивное не изолированное окружение firejail, используя пространство точек монтирования (mount namespace), после чего подключиться к нему при помощи опции "--join". Если в настройках не активирован режим запрета получения дополнительных привилегий в новых процессах (prctl NO_NEW_PRIVS), firejail подключит пользователя к фиктивному окружению и попытается применить настройки пространства имён идентификаторов пользователей (user namespace) процесса init (PID 1).

В итоге подключённый через "firejail --join" процесс окажется в исходном для пользователя пространстве имён идентификаторов пользователей с неизменными привилегиями, но в другом пространстве точек монтирования, полностью контролируемом атакующим. В том числе атакующий может выполнять setuid-root программы в созданном им пространстве точек монтирования, что позволяет, например, изменить настройки /etc/sudoers или параметры PAM в своей файловой иерархии и получить возможность выполнения команд с правами root при помощи утилит sudo или su.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Опасные уязвимости в Firejail, Connman и GNU Guix
  3. OpenNews: Уязвимости в OpenSSL, Glibc, util-linux, драйверах i915 и vmwgfx
  4. OpenNews: Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
  5. OpenNews: Серия уязвимостей в Firejail
  6. OpenNews: Локальные root-уязвимости в инструментарии управления пакетами Snap
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/57337-firejail
Ключевые слова: firejail
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (49) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:17, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никогда такого не было, и вот опять.
     
     
  • 2.18, Аноним (18), 14:23, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    # Prerequisites:
    # - the firejail setuid-root binary needs to be installed and accessible to the
    #   invoking user
     
  • 2.39, Аноним (-), 20:38, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Ты должен был ИЗОЛИРОВАТЬ приложения, а не давать доступ к руту!!!
     
     
  • 3.41, Аноним (-), 20:48, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Забавная там многоходовочка.
     

  • 1.3, Анонимно (ok), 10:37, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Изолированный запуск app безопасно говорили они
     
     
  • 2.15, Аноним (15), 13:29, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Классический юниксовый подход - чтобы снизить привилегии, нужно сначала их получить.
    Поэтому традиционно демоны стартуют из-под рута, выполняют привилегированные операции (socket bind, chroot и т.д.) и только после этого сбрасывают привилегии. И если их ломануть на этой стадии - получим рута.

    Со всяческими "изоляторами" - ровно то же самое. Чтобы нормально заизолировать процесс, то есть настроить namespaces, cgroups и прочее - нужно иметь рута.

    Простая аналогия из мира людей: государственная система, эффективно борющаяся с коррупцией, легко уязвима для госпереворота.

     
  • 2.24, Аноним (24), 16:29, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Надо было писать на Rust, говорили они.
     
     
  • 3.37, Аноним (15), 17:43, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И написали на C.
     
  • 3.42, Аноним (-), 20:54, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ошибка логическая - от яп вон то вообще не зависит.
     

  • 1.5, Роман (??), 11:29, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Нормально всё - детские болезни вылазят просто. Линукс лезет к конечному пользователю (desktop, laptop ), набивают шишки.

    Фряха не лезет и не страдает от такого (ну там конечно будет позже вопрос кто остался на фряхе кроме тех кто может патчить код, но это другое).

     
     
  • 2.7, Аноним (15), 11:47, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Фряха не лезет и не страдает от такого

    В смысле, так и остаётся Неуловимым Джо, в котором дыры есть, но искать их некому, потому что никто не пользуется?

     
     
  • 3.11, Аноним (11), 12:26, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > но искать их некому

    https://www.opennet.ru/opennews/art.shtml?num=48676
    > Организация The NetBSD Foundation оплатила проведение аудита безопасности

     
     
  • 4.27, Аноним (27), 17:00, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сейчас бы перепутать FreeBSD и NetBSD.
     
  • 4.46, Аноним (-), 21:53, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно как NetBSD foundation относится к использовнию фряхи, особенно с изоляцией софта на десктопе. Они точно оплатили именно это?
     
  • 3.14, Роман (??), 12:40, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неуловимым Джо конечно остаётся, и даже прогрессирует в здесь, но давайте оставим это за кадром.

    Я слегка о другом - вот это вот всё - firejail, logind, appimage/snap это же про то как технически неграмотному юзеру (тем кто не обладает навыками программирования на С) дать возможность пользоваться линукс не только на серверах. И если MacOS/Windows прошли этот путь давно и собрали много случаев реальных (типа форсить апдейты иначе их не поставят) то тут ещё копать и копать в эту сторону - первые детские шаги.

     
     
  • 4.22, борланд (?), 16:22, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И причем тут снапы с файерджейлами и поэтессами, как они мешают или упрощают возможность простому пользователю что-либо делать?
    А главное причем тут бсд. Там нет такого зоопарка с которым,судя по диким тормозам снапа,безуспешно борятся. Во фре вообще все максимально просто, особенно там где в бубунтах стоит отклониться от кликанья далее->далее>ок.
    Живу же как-то без альс с пульсами и пипевирами. Нет никаких унылод, а сх портянки в разы проще из-за отсутсвия этих ваших run level.
    C не знаю и не собираюсь изучать.

    Но речь даже не о б этом. GUI приложения,за редким исключением, абсолютно те же самые что и на линуксе.

     
  • 2.8, Аноним (8), 11:48, 12/06/2022 Скрыто модератором
  • –3 +/
     
     
  • 3.31, YetAnotherOnanym (ok), 17:06, 12/06/2022 Скрыто модератором
  • +/
     
     
  • 4.32, Аноним (8), 17:12, 12/06/2022 Скрыто модератором
  • –2 +/
     
  • 4.47, Аноним (-), 21:56, 12/06/2022 Скрыто модератором
  • –2 +/
     
  • 2.10, Аноним (11), 12:24, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В FreeBSD есть jail, не такой дырявый как firejail. И да, BSD для десктопа лучше, чем Linux, так как там нет таких проблем, как баг 12309.
     
     
  • 3.13, Аноним (8), 12:30, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >баг 12309

    Да ладно вам рассказывать, даже в венде есть. Не удалось стриггеррить не равно нет. Зато есть другие, и, в итоге, не юзабельно при ближайшем рассмотрении.

     
     
  • 4.54, Аноним (54), 08:27, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Не удалось стриггеррить не равно нет

    Чайник Рассела прямо.

     
  • 3.20, Роман (??), 14:46, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я точно не в теме использования Фряхи - можете привести пару примеров использования для приложений "из коробки"? То что с напильником и лишним временем можно самому заморочиться это мне понятно и так.

    Я смотрю на
    >Firejail uses profiles to set the security protections for each of the applications executed inside of it - you can find the default profiles in /etc/firejail/application.profile

    и из этого мне понятно что уже есть подготовленные профили ( https://github.com/netblue30/firejail/tree/master/etc/profile-a-l ) для скажем Chromium или Emacs.
    Тут понятно что это экономит мне время, про Jails - есть сомнения.

     
     
  • 4.23, борланд (?), 16:28, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Pkg install kde5
    Pkg install Firefox
    Вот вам пример установки фирифокса из коробки.
    Здесь лишь может надо будет один раз прочесть wiki/хендбук о том как установить и испооьзовать драйвер от вашей невидии/ати или интела. Остальное давно уже само подхватывается.

    Если многабукв серьезное препятствие, то только маки и винда. Потому как даже в бубунтах придется искать магические заклинания с sudo на askubuntu.com

     
     
  • 5.38, Аноним (15), 17:45, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот вам пример установки фирифокса из коробки.

    А как насчёт запуска firefox в jail, про который вас спрашивали?

     
  • 5.48, Аноним (-), 22:04, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Pkg install kde5
    > Pkg install Firefox

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

    А определить куда фокс пустить а куда нет самому - это так то очень отдельное развлечение.

     
     
  • 6.56, Аноним (-), 22:49, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И правда, в каком месте jail изолирован от системы, ага Там не нужен навороченн... большой текст свёрнут, показать
     
     
  • 7.57, Аноним (-), 03:17, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В вашем рецепте его не было А так все хорошо А этот темплейт в готовом, актуал... большой текст свёрнут, показать
     
     
  • 8.58, Аноним (58), 22:52, 14/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Читать ветку обсуждения целиком, а не выхватывать частями и все будет хорошо По... большой текст свёрнут, показать
     
  • 3.25, Аноним (24), 16:33, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    [sarcasm]Лучше поддержкой оборудования[/sarcasm] В голове у тебя баг 12309.
     
  • 3.30, YetAnotherOnanym (ok), 17:04, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Во Фряхе свои "нюансы" есть. Но, вообще - да, после зоопарка дистров Линуха с его "кто в лес, кто по дрова" стройная логичность Фряхи - как бальзам для сердца.
     
     
  • 4.49, Аноним (-), 22:05, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Бальзамы так то разные бывают.
     
  • 2.60, Вы забыли заполнить поле Name (?), 01:42, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack. А на Linux desktop лезут корпорасты с их "все свое ношу с собой".  
     
     
  • 3.62, Роман (??), 15:58, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack.

    Не согласен - кому надо тот давно по старинке в чрутах или еще каких systemd-nspawn демона изолированно крутит. Если приложение или сервис "не демон", для взаимодействия с юзером и обратно (что уже ближе к desktop/laptop), скачан "с интернетов", то провести пару вечером за ручной настройкой такой изоляции нравится не всем, даже если предположить что с такой задачей рандомный пользователь вообще справится.


    > А на Linux desktop лезут корпорасты с их "все свое ношу с собой".

    Если хоть кто-то лезет, то не так девка^W линукс и страшен. Хотя мне кажется вы слегка приукрашиваете реальность и на самом деле никто не лезет - всем глубоко побую. У условного гугла работают Chromebooks, а бороться за апстриминг этого и мир во всём мире - накой им надо.

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


     
     
  • 4.63, Вы забыли заполнить поле Name (?), 01:32, 22/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack.
    > Не согласен - кому надо тот давно по старинке в чрутах или
    > еще каких systemd-nspawn демона изолированно крутит. Если приложение или сервис "не
    > демон", для взаимодействия с юзером и обратно (что уже ближе к
    > desktop/laptop), скачан "с интернетов", то провести пару вечером за ручной настройкой
    > такой изоляции нравится не всем, даже если предположить что с такой
    > задачей рандомный пользователь вообще справится.

    Как раз в firejail есть профили. Можно не париться. Порог ниже чем в apparmor или selinux.


    >> А на Linux desktop лезут корпорасты с их "все свое ношу с собой".
    > Если хоть кто-то лезет, то не так девка^W линукс и страшен. Хотя
    > мне кажется вы слегка приукрашиваете реальность и на самом деле никто
    > не лезет - всем глубоко побую. У условного гугла работают Chromebooks,
    > а бороться за апстриминг этого и мир во всём мире -
    > накой им надо.
    > Сообщество не смогло сформировать единый центр принятия решений, корпорации значит сформируют
    > за них.

    Почему сразу google? Много контор хотят свой софт пихать в линукс в псевдоизоляции (продукты jetbrains, telegram, vscode и др.)

     

  • 1.9, Аноним (9), 12:08, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Посоветуйте, на что посмотреть кроме firejail? и где какие плюсы минусы?
     
     
  • 2.12, Shevchuk (ok), 12:26, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.archlinux.org/title/Bubblewrap
     
  • 2.16, Аноним (15), 13:31, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  Посоветуйте, на что посмотреть кроме firejail? и где какие плюсы минусы?

    Qubes https://www.opennet.ru/opennews/art.shtml?num=56641
    Плюсы: хороший уровень изоляции, критичных дыр пока вроде не находили.
    Минусы: надо повозиться, местами может быть неудобно.

     
     
  • 3.17, Аноним (8), 13:56, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >хороший уровень изоляции, критичных дыр пока вроде не находили.

    Кроме того случая, когда изично поимели всю эту изоляцию ради изоляции?

     
     
  • 4.35, Аноним (15), 17:39, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А такие случаи были?
     
     
  • 5.43, Аноним (8), 21:12, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да несколько ж было, иногда упоминали и сабж. Я так понимаю, любая уязвимость в XEN автоматически подразумевает изящное отверстие в нём. Расчёт тут только на то, что ты никому не нужен. Пока у тебя нет ничего интересного, всё в порядке, а в случае таргетированной атаки могут быть уже различные варианты. Стоит ли за это платить такую высокую цену? В итоге, это не более чем исследовательский проект, по фану.
     
  • 3.59, Аноним (59), 12:40, 15/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас бы для каждой программы создавать свою виртуалку. И, тем более, скачивать какой-то qubes, а не настроить самому в любом дистрибутиве.
     
     
  • 4.61, slepnoga (??), 13:33, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Давно, уже, лет 15 как все сделано - называется SELINUX.
    Кроме изоляции позволяет написать пароль рута  на заборе, дать рутовские ключи каждому 1-мы хакеру и вообще не волноватся по этому поводу.
    Для совсем уж шапочек из фольги grsec+rsbac вообще творит чудеса.
    Но как и везде, если сделать что то, чем может пользоватся и дурак, то только дурак и будет им пользоватся.
     

  • 1.21, Аноним (21), 15:14, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Факт, что firejail SUID root - это уже красный флаг.

    И уязвимостей подобных в приложении уже был вагон.

    // b.

     
     
  • 2.34, Аноним (15), 17:38, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Факт, что firejail SUID root - это уже красный флаг.

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

     
     
  • 3.53, Аноним (8), 23:12, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно, user namespaces. Если ты замапил рута в неймспейсе, твои проблемы. В таком случае в неймспейсе появляются права, которых не было вне него.
     
  • 2.52, Аноним (-), 22:29, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тут как бы нюансик в том что иначе обычный бесправный юзер вообще ничего не може... большой текст свёрнут, показать
     

  • 1.26, YetAnotherOnanym (ok), 16:48, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Для эксплуатации уязвимости атакующий может симулировать фиктивное не изолированное окружение firejail, используя пространство точек монтирования (mount namespace), после чего подключиться к нему при помощи опции "--join".

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

     
  • 1.29, Аноним (27), 17:04, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Если в настройках не активирован режим запрета получения дополнительных привилегий в новых процессах (prctl NO_NEW_PRIVS)

    Чтобы получить рут на Линуксе нужно сперва получить рут на Линуксе. Ок.

     
  • 1.55, Аноним (-), 14:59, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    опять тюрьму сожгли и сбежали, изверги
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру