Они обнаружили уязвимость в firejail, позволяющую root-доступ к системе.

Недавно они опубликовали новость о том, что была обнаружена уязвимость (уже указан в CVE-2022-31214) в песочнице приложения Firejail, подробно описано, что обнаруженная уязвимость может позволить локальному пользователю стать пользователем root в хост-системе.

Firejail использует механизм пространств имен, AppArmor и фильтрацию системных вызовов (seccomp-bpf) в Linux для изоляции, но требует повышенных привилегий для настройки изолированного выпуска, который он получает путем привязки к утилите suid root flag или запуска с помощью sudo.

Уязвимость связана с ошибкой в ​​логике опции «–join=». », предназначен для подключения к уже запущенной изолированной среде (аналогично команде входа в систему для среды песочницы) со средой, определяемой идентификатором запущенного в ней процесса. На этапе перед запуском firejail определяет привилегии указанного процесса и применяет их к новому процессу, который присоединяется к среде с параметром «–join».

Перед подключением, проверяет, запущен ли указанный процесс в среде firejail. Эта проверка оценивает наличие файла /run/firejail/mnt/join. Чтобы воспользоваться уязвимостью, злоумышленник может имитировать фиктивную неизолированную среду firejail используя пространство имен монтирования, а затем подключаясь к нему с помощью параметра «--join».

Если в конфигурации не включен режим запрета получения дополнительных привилегий в новых процессах (prctl NO_NEW_PRIVS), то firejail подключит пользователя к фиктивной среде и попытается применить пользовательскую конфигурацию namespace идентификаторов пользователей (namespace user) процесса init ( ПИД 1).

Большая часть логики функции соединения находится в исходном коде. из файла `src/firejail/join.c`. Критические участки кода выполняются с повышенные привилегии (действующий UID 0). Идентификатор процесса, переданного в виде команды аргумент строки проверяется, чтобы определить, является ли он rконтейнера и определить некоторые его свойства, которые Это также относится к новому процессу входа.

Основные критерии принятия решения о присоединении к целевому процессу удачным является наличие файла в пространстве имён монтирования таргета, процесс находится в /run/firejail/mnt/join. Эта проверка выполняется на fФункция `is_ready_for_join()`. Файл открывается с помощью lФлаги `O_RDONLY|O_CLOEXEC` и результат трассировки `fstat()` должны соответствовать следующим требованиям:

– файл должен быть обычным файлом.
– файл должен принадлежать пользователю с идентификатором 0 (как видно из начального пользователя
пространство имен).
– размер файла должен быть 1 байт.

В результате процесс, подключенный через «firejail --join», окажется в пространстве имен исходный идентификатор пользователя пользователя с неизменными привилегиями, но в другом месте точки монтирования, полностью контролируемом атакующим.

Полученная «присоединенная» оболочка теперь будет жить у начального пользователя.
пространство имен, сохраняя исходные привилегии обычного пользователя, однако пространство имен монтирования будет контролироваться злоумышленником. В качестве
конфигурация nonewprivs не применялась, теперь злоумышленник может
запускать программы setuid-root в этом пространстве имен монтирования

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

Напоследок стоит отметить, что разработан функциональный эксплойт, протестированный на актуальных версиях openSUSE, Debian, Arch, Gentoo и Fedora с установленной утилитой firejail.

Проблема была исправлена ​​в версии firejail 0.9.70. В качестве исправления безопасности вы можете установить для конфигурации (/etc/firejail/firejail.config) значение «no join» и «force-nonewprivs yes».

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


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.