В Snap были обнаружены две уязвимости, которые позволяли запускать код от имени пользователя root

Представление Qualys новости, которые я идентифицирую две уязвимости (CVE-2021-44731 и CVE-2021-44730) в утилите snap-confine, отправленный с корневым флагом SUID и вызываемый процессом snapd для создания исполняемой среды для приложений, распространяемых в пакетах моментальных снимков.

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

Первая уязвимость позволяет провести атаку с манипулированием физическими ссылками., но требует отключения защиты системных жестких ссылок (установив для sysctl fs.protected_hardlinks значение 0).

Проблема это связано с неправильной проверкой местоположения исполняемых файлов утилит snap-update-ns и snap-discard-ns которые работают как root. Путь к этим файлам был рассчитан в функции sc_open_snapd_tool() на основе его собственного пути из /proc/self/exe, что позволяет вам создать жесткую ссылку для ограничения в вашем каталоге и указать ваши параметры snap-update-ns и snap -discard-ns в этом каталоге. При запуске с жесткой ссылки snap-confine от имени пользователя root выполнит подставленные злоумышленником файлы snap-update-ns и snap-discard-ns из текущего каталога.

Успешная эксплуатация этой уязвимости позволяет любому непривилегированному пользователю получить привилегии root на уязвимом хосте. Исследователи безопасности Qualys смогли независимо проверить уязвимость, разработать эксплойт и получить полные привилегии суперпользователя в установках Ubuntu по умолчанию.

Как только исследовательская группа Qualys подтвердила уязвимость, мы приступили к ответственному раскрытию уязвимости и координировали действия с поставщиками и дистрибутивами с открытым исходным кодом, чтобы объявить об этой недавно обнаруженной уязвимости.

Вторая уязвимость вызвана состоянием гонки и может быть использован в конфигурации рабочего стола Ubuntu по умолчанию. Чтобы эксплойт успешно работал на Ubuntu Server, во время установки необходимо выбрать один из пакетов в разделе «Избранные снимки сервера».

состояние гонки проявляется в функции setup_private_mount() вызывается во время подготовки пространства имен точки монтирования для мгновенного пакета. Эта функция создает временный каталог "/tmp/snap.$SNAP_NAME/tmp" или использует существующий для связывания и монтирования каталогов для пакета моментальных снимков.

Поскольку имя временного каталога предсказуемо, злоумышленник может изменить его содержимое на символическую ссылку после проверки владельца, но до вызова системы монтирования. Например, вы можете создать символическую ссылку «/tmp/snap.lxd/tmp» в каталоге /tmp/snap.lxd, которая указывает на произвольный каталог, и вызов mount() будет следовать символической ссылке и монтировать каталог в пространстве имен.

Точно так же вы можете смонтировать его содержимое в /var/lib и, переопределив /var/lib/snapd/mount/snap.snap-store.user-fstab, организовать монтирование вашего каталога /etc в оснастке пространства имен пакетов для загрузки вашей библиотеки. из корневого доступа, заменив /etc/ld.so.preload.

Замечено, что создание эксплойта оказалось нетривиальной задачей, поскольку утилита snap-confine написана с использованием методов безопасного программирования (snapd написана на Go, но для snap-confine используется C), имеет защиту на основе профилей AppArmor, фильтрует системные вызовы на основе механизма seccomp и использует пространство имен монтирования для изоляции.

Однако исследователи смогли подготовить функциональный эксплойт. получить root-доступ в системе. Код эксплойта будет выпущен через несколько недель после того, как пользователи установят предоставленные обновления.

Наконец, стоит упомянуть, чтоПроблемы были исправлены в обновлении пакета snapd. для версий Ubuntu 21.10, 20.04 и 18.04.

Помимо других дистрибутивов, использующих Snap, выпущен Snapd 2.54.3, в котором, помимо вышеперечисленных проблем, исправлена ​​еще одна уязвимость (CVE-2021-4120), позволяющая при установке специально разработанных пакетов плагинов, переопределить произвольные правила AppArmor и обойти ограничения доступа, установленные для пакета.

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


Будьте первым, чтобы комментировать

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

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

*

*

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