В GDM обнаружена уязвимость

Исследователь безопасности автор: GitHub сделал это известным в последнее время вы определили уязвимость (CVE-2020-16125) в GNOME Display Manager (GDM), который отвечает за отображение экрана входа в систему.

В сочетании с другой уязвимостью в сервисе отслеживания учетных записей (accounts-daemon), проблема позволяет коду запускаться от имени пользователя root.  Уязвимость связана с некорректным запуском утилиты начальной настройки, если невозможно получить доступ к сервису демона учетной записи через DBus.

Об уязвимости

Непривилегированный пользователь может привести к сбою процесса демона учетных записей. или повесить трубку, что создаст условия для запуска утилиты gnome-initial-setup из GDM, с помощью которой новый пользователь может зарегистрироваться в качестве члена группы sudo, то есть иметь возможность запускать программы от имени пользователя root.

Как правило, GDM вызывает gnome-initial-setup, чтобы установить первого пользователя если в системе нет аккаунтов. Проверка существования учетных записей осуществляется путем обращения к accounts-daemon. Если указанный процесс не удается, GDM предполагает, что учетные записи отсутствуют, и запускает процесс первоначальной настройки.

Исследователь выявил два способа нарушить работу демона-аккаунтов.- Первая (CVE-2020-16126) связана с неправильным сбросом привилегий, а вторая (CVE-2020-16127) - ошибкой при обработке файла «.pam_environment».

Кроме того, в демон-аккаунтах обнаружена еще одна уязвимость (CVE-2018-14036) вызвано неправильной проверкой пути к файлу и позволяет читать содержимое произвольных файлов в системе.

Уязвимости в account-daemon вызваны изменениями, внесенными разработчиками Ubuntu, и не появляются в основном коде account-daemon проекта FreeDesktop и пакета Debian.

Проблема CVE-2020-16127 присутствует в патче, добавленном в Ubuntu, который реализует функцию is_in_pam_environment, которая считывает содержимое файла .pam_environment из домашнего каталога пользователя. Если вы поместите символическую ссылку на / dev / zero вместо этого файла, процесс демона учетной записи зависнет при бесконечных операциях чтения и перестанет отвечать на запросы через DBus.

Нетипично, что уязвимость современной операционной системы так легко эксплуатировать. В некоторых случаях я писал тысячи строк кода для эксплуатации уязвимости. 

Большинство современных эксплойтов включают сложные уловки, такие как использование уязвимости повреждения памяти для подделки поддельных объектов в куче или замена файла символической ссылкой с точностью до микросекунд для использования уязвимости TOCTOU. 

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

Уязвимость CVE-2020-16126 вызвана другим патчем который сбрасывает права текущего пользователя при обработке некоторых вызовов DBus (например, org.freedesktop.Accounts.User.SetLanguage).

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

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

Пользователь завершает графический сеанс и переходит в текстовую консоль. (Ctrl-Alt-F1).
После завершения графического сеанса GDM пытается отобразить экран входа в систему, но зависает при попытке получить ответ от демона учетных записей.

Сигналы SIGSEGV и SIGCONT отправляются с консоли процессу демона учетной записи, что приводит к его зависанию.

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

Запрос к демону учетных записей в GDM не выполняется, и GDM вызывает утилиту gnome-initial-setup, в интерфейсе которой достаточно создать новую учетную запись.

Уязвимость исправлена ​​в GNOME 3.36.2 и 3.38.2. Использование уязвимости подтверждено в Ubuntu и ее производных.

источник: https://securitylab.github.com


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

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

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

*

*

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