В sudo устранена уязвимость, позволяющая повысить свои привилегии
В утилите 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, к которому прикреплен текущий процесс, но так как в качестве разделителей применяются пробелы, наличие в файла с пробелом в имени, нарушает порядок разбора и позволяет подставить фиктивный номер устройства, не связанные с каким-то уже существующим устройством в каталоге /dev. Используя данный фиктивный номер устройства sudo не может найти терминал текущего процесса в каталоге /dev/pts, после чего пытается найти устройство в каталоге /dev.
Атакующий может подобрать момент и создать новый псевдотерминал в момент, когда sudo уже проверил /dev/pts но еще не начал проверку в /dev, и установить на него символическую ссылку в директории /dev, после чего данный файл будет воспринят sudo как терминал для ввода и вывода. При указании роли SELinux через опцию "-r role" в командной строке данное устройство будет использовано для ввода и вывода sudo. Заменив символическую ссылку с псевдотерминала на реальный файла, можно переписать его содержимое. Например, переписав /etc/shadow или /etc/sudoers можно получить полномочия root.