Локальная уязвимость в X.Org

В X.Org найдена опасная уязвимость, позволяющая путем манипуляции на этапе создания lock-файла поменять права доступа к любому файлу в системе на 444 (полный доступ на чтение для всех). Например, локальный злоумышленник на этапе запуска X.Org-сервера может поменять права на файл /etc/shadow и получить доступ к хэшам паролей всех пользователей в системе, или поменять права на блочное устройство и прочитать полное содержимое дисковых разделов. Для успешной эксплуатации у атакующего должна быть возможность запуска X-сервера.
Техника эксплуатации уязвимости достаточно простая (готовый эксплоит приводится в тексте уведомления о наличии проблемы):

  1. Создаётся фиктивная символическая ссылка "/tmp/.X1-lock" -> "/dontexist";
  2. Запускается X-сервер;
  3. Останавливается X-сервер через отправку процессу сигнала SIGSTOP сразу после создания "/tmp/.tX1-lock" (угадать нужный момент помогает эксплоит);
  4. Запускается ещё один процесс X для удаления /tmp/.tX1-lock;
  5. Создаётся символическая ссылка "/tmp/.tX1-lock" -> "/etc/shadow";
  6. Отправляется SIGCONT остановленному на третьем шаге процессу, который выполняет вызов chmod() для подменённого файла;

В общем виде процесс эксплуатации выглядит примерно так:

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1072 Aug  7 07:10 /etc/shadow
$ ./xchmod
$ ls -l /etc/shadow
-r--r--r-- 1 root shadow 1072 Aug  7 07:10 /etc/shadow

Исправление пока доступно в виде патча для X Server 1.11.2 и экспериментальной ветки 1.12. Обновление пакетов с устранением уязвимости доступно для FreeBSD, Ubuntu и Gentoo. Неисправленной узявимость остаётся в Slackware, Mandriva, openSUSE, CentOS, Fedora, RHEL и Debian.



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов