Критическая уязвимость в sudo позволяет получить привилегии root

Исследователи безопасности Qualys выявили критическую уязвимость (CVE-2021-3156) в утилите sudo, который предназначен для организации выполнения команд от имени других пользователей.

Уязвимость разрешает неаутентифицированный доступ с привилегиями root. Проблема может использоваться любым пользователем, вне зависимости от наличия в системных группах и наличия записи в файле / etc / sudoers.

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

Чтобы найти уязвимость в вашей системе, просто запустите команду «sudoedit -s /», и уязвимость присутствует, если отображается сообщение об ошибке, начинающееся с «sudoedit:».

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

Уязвимость появилась с июля 2011 года и вызвана переполнением буфера. при обработке escape-символов строки в параметрах, предназначенных для выполнения команд в режиме оболочки. Режим оболочки включается указанием аргументов «-i» или «-s» и вызывает выполнение команды не напрямую, а через дополнительный вызов оболочки с флагом «-c» («sh -c command»).

Суть в том, что, когда утилита sudo запускается в обычном режиме, она экранирует специальные символы, указывая параметры «-i» и «-s», но при запуске утилиты sudoedit параметры не экранируются, как parse_args () Функция устанавливает переменную среды MODE_EDIT вместо MODE_SHELL и не сбрасывает значение «valid_flags».

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

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

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

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

Исследователям безопасности Qualys удалось подготовить три эксплойта, работа которых основана на переписывании содержимого структур sudo_hook_entry, service_user и def_timestampdir:

  • Прервав sudo_hook_entry, можно запустить двоичный файл с именем «SYSTEMD_BYPASS_USERDB» от имени пользователя root.
  • При переопределении service_user удалось запустить произвольный код от имени пользователя root.
  • Переопределив def_timestampdir, можно было сбросить содержимое стека sudo, включая переменные среды, в файл / etc / passwd и добиться замены пользователя с привилегиями root.

Исследователи показали, что эксплойты работают получить полные привилегии root в Ubuntu 20.04, Debian 10 и Fedora 33.

Уязвимость может использоваться в других операционных системах и дистрибутивах, но проверка исследователей была ограничена Ubuntu, Debian и Fedora, плюс упоминается, что затронуты все версии sudo 1.8.2–1.8.31p2 и 1.9.0–1.9.5p1 в настройках по умолчанию. Предлагаемое решение в sudo 1.9.5p2.

Исследователи заранее уведомили разработчиков распространители, которые уже скоординированно выпустили обновления пакетов: Debian, RHEL, Fedor, Ubuntu, SUSE / openSUSE, Arch Linux, Slackware, Gentoo и FreeBSD.

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


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

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

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

*

*

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