Уязвимость в sudo, позволяющая переписать файл на системах с SELinux. В утилите sudo, применяемой для организации выполнения команд от имени других пользователей, выявлена опасная уязвимость (CVE-2017-1000367). Проблема позволяет переписать любой файл в системе, например, /etc/shadow, и проявляется только если пользователю делегировано выполнение определённых привилегированных операций в /etc/sudoers, в системе включен SELinux и sudo собран с поддержкой SELinux. Уязвимость устранена в обновлении sudo 1.8.20p1, а также в пакетах дистрибутивов RHEL 6/7, Fedora, Ubuntu, Debian, SUSE и openSUSE.

Уязвимость эксплуатируется через создание символической ссылки на исполняемый файл sudo, с заданием для ссылки имени, содержащем пробел, после которого следует число. При разборе файла /proc/[pid]/stat после запуска по такой ссылке программа sudo пытается определить номер устройства tty, к которому прикреплён текущий процесс, но так как в качестве разделителей /proc/[pid]/stat применяются пробелы, запуск через ссылку с пробелом в имени нарушает порядок разбора и позволяет подставить фиктивный номер устройства, не связанные с каким-то уже существующим устройством в каталоге /dev. Используя данный фиктивный номер устройства sudo не может найти терминал текущего процесса в каталоге /dev/pts, после чего пытается найти устройство в каталоге /dev.

Атакующий может подобрать момент и создать новый псевдотерминал в момент, когда sudo уже проверил /dev/pts но ещё не начал проверку в /dev (например, используя inotify для отслеживания открытия каталога), и установить на него символическую ссылку в каталоге /dev (напирмер, каталог /dev/shm доступен всем на запись), после чего данный файл будет воспринят sudo как текущий терминал. При указании роли SELinux через опцию «-r role» в командной строке при вызове sudo, данное устройство будет использовано для stdin, stdout и stderr. Заменив символическую ссылку с псевдотерминала на реальный файл, можно переписать его содержимое (sudo выводит в stderr все аргументы командной строки в случае ошибки, например, можно вместо опции передать ‘—\nHELLO\nWORLD\n’). Например, переписав /etc/shadow или /etc/sudoers можно получить полномочия root.

Показать больше в Новости

2 комментария

  1. Fargoname00

    Июнь 1, 2017 в 13:47

    Чем su не угодил. не понимаю людей ставящих на пк левый бесполезный софт.

    0

    • ShellN

      Июнь 1, 2017 в 13:48

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

      0

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

Проверьте также

Что хочет ФСБ от Telegram, «ВКонтакте» и «Яндекса»?

Минкомсвязи выложило в Сеть на общественное обсуждение проект, с описанием обязательных об…