Выпуск X.Org Server 1.20.3 с устранением локальной root-уязвимости

Опубликован релиз X.Org Server 1.20.3, в котором устранена опасная уязвимость (CVE-2018–14665), позволяющая повысить свои привилегии или перезаписать любой файл в системе. Проблема проявляется только при запуске X-сервера в режиме запуска с повышенными привилегиями (когда исполняемый файл x-сервера поставляется с установленным битом setuid root и любой непривилегированный пользователь может запустить x-сервер).

Суть уязвимости в том, что при запуске X-сервера пользователь может поменять путь к модулям при помощи опции »-modulepath» и добиться загрузки своего модуля, который будет запущен на этапе до сброса привилегий с правами root. Второй вариант атаки связан с использованием опции »-logfile», при помощи которой локальный злоумышленник может направить вывод лога в любой файл в системе. Например, можно указать в качестве аргумента »-logfile» файл /etc/shadow и переписать его содержимое, заменив строку с хэшем пароля суперпользователя. Для подстановки нужной строки в файл /etc/shadow можно использовать опцию »-fp», значение которой выводится в лог.

Уязвимости вызваны ошибкой, внесённой при подготовке ветки xorg-server 1.19.0 и приводящей к игнорированию проверок некоторых потенциально опасных опций. В качестве обходного пути решения проблемы рекомендуется убрать флаг suid с файла /usr/bin/Xorg и использовать дисплейный менеджер для запуска графического сеанса. Проблема проявляется в RHEL 7.5 и Fedora, но из-за ограничений PAM для эксплуатации атакующий должен иметь доступ к локальной консоли (через SSH эксплуатировать уязвимость не получится). В Ubuntu и SUSE 12+/openSUSE 42+ проблема не проявляется, так как там не используется бит setuid (в SUSE 11 проблема присутствует).

© OpenNet