Некоторые версии сервера Xorg X11 уязвимы для эксплойтов повышения привилегий, затронуты OpenBSD и CentOS

Безопасность / Некоторые версии сервера Xorg X11 уязвимы для эксплойтов повышения привилегий, затронуты OpenBSD и CentOS 1 минута на чтение

Проект OpenBSD



Xorg - очень известная оконная система X, используемая в Linux. Это графический пользовательский интерфейс, использующий стандарт X11, который, в свою очередь, является протоколом связи. Xorg был создан на основе проекта XFree86, который больше не находится в активной разработке.

Эксплойт повышения привилегий

Все версии сервера Xorg X11 от 1.19.0 до 1.20.3 уязвимы для недостатков проверки прав доступа, которые существуют для параметров -modulepath и -logfile. Это дает непривилегированным пользователям возможность запускать сервер, запускать произвольный код с повышенными привилегиями.



Исследователи выяснили, что запуск CRON-скрипта с загруженным эксплойтом заставляет SELinux применять его. Создается файл резервной копии crontab.old, который, по сути, заменяется модулем Metasploit новым файлом с командами и инструкциями для запуска демона cron. Неудачная эксплуатация может привести к повреждению файла crontab. Xorg также должен иметь разрешения SUID для работы эксплойта, что вы можете проверить из фрагмента кода ниже.



# проверка linux
uname = cmd_exec «uname»
если uname = ~ / linux / i
vprint_status «Выполняется дополнительная проверка для Linux»
если хранилище данных [‘ConsoleLock’] user = cmd_exec «id -un»
если не существует? «/ Var / run / console / # {пользователь}»
vprint_error «Нет блокировки консоли для # {user}»
return CheckCode :: Safe
конец
vprint_good «Блокировка консоли для № {user}»
конец
если selinux_installed?
если selinux_enforcing?
vprint_error 'Selinux применяет'
return CheckCode :: Safe
конец
конец
vprint_good «Selinux не проблема»
конец

# проверка программы suid
xorg_path = cmd_exec «команда -v Xorg»
кроме xorg_path.include? («Xorg»)
vprint_error «Не удалось найти исполняемый файл Xorg»
return CheckCode :: Safe
конец
vprint_good «Путь Xorg найден в # {xorg_path}»
разве что setuid? xorg_path
vprint_error «Бинарный файл Xorg # {xorg_path} не является SUID»
return CheckCode :: Safe
конец
vprint_good «Двоичный код Xorg # {xorg_path} - это SUID»

Методология тестирования

Над этим эксплойтом работали четыре исследователя -

  • Нарендра Шинде - Открытие и подвиг
  • Raptor-0xdea - модифицированный эксплойт для cron
  • Аарон Ринго - модуль Metasploit
  • Брендан Коулз - модуль Metasploit

Это было протестировано на OpenBSD 6.3, 6.4 и CentOS 7 (1708). Согласно примечаниям к Packetstorm, CentOS с установкой по умолчанию потребуется консольная аутентификация для пользовательских сеансов.

Это серьезная уязвимость, учитывая масштабы использования Xorg. Хотя для работы эксплойту требуются некоторые предустановки, которые могут отсутствовать в профессиональной среде.

Теги CentOS OpenBSD Xorg