Версиите на Xorg X11 на сървъра са уязвими за привилегировани екскалации, засегнати от OpenBSD и CentOS

Сигурност / Версиите на Xorg X11 на сървъра са уязвими за привилегировани екскалации, засегнати от OpenBSD и CentOS 1 минута четене

Проект OpenBSD



Xorg е много известна X прозоречна система, използвана в Linux. Това е графичен потребителски интерфейс, който използва стандарта X11, който от своя страна е комуникационен протокол. Xorg беше раздвоен от проекта XFree86, който вече не е в активна разработка.

Експлойт на Privilege Escalation

Всички версии на сървъра 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”
ако datastore [‘ConsoleLock’] потребител = cmd_exec “id -un”
освен ако не съществува? “/ Var / run / console / # {user}”
vprint_error „Няма заключване на конзолата за # {потребител}“
върнете CheckCode :: Safe
край
vprint_good „Заключване на конзолата за # {потребител}“
край
ако selinux_installed?
ако selinux_enforcing?
vprint_error ‘Selinux се налага’
върнете CheckCode :: Safe
край
край
vprint_good “Selinux не е проблем”
край

# проверка на програмата suid
xorg_path = cmd_exec “команда -v Xorg”
освен ако xorg_path.include? („Xorg“)
vprint_error “Не можах да намеря изпълним Xorg”
върнете CheckCode :: Safe
край
vprint_good „Пътят на Xorg е намерен на # {xorg_path}“
освен сетуид? xorg_path
vprint_error „Xorg двоичен # {xorg_path} не е SUID“
върнете CheckCode :: Safe
край
vprint_good „Xorg двоичен # {xorg_path} е SUID“

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

Над този подвиг са работили четирима изследователи -

  • Narendra Shinde - Откриване и експлойт
  • Raptor-0xdea - Модифициран експлойт за cron
  • Аарон Ринго - модул Metasploit
  • Brendan Coles - модул Metasploit

Това беше тествано на OpenBSD 6.3, 6.4 и CentOS 7 (1708). Според бележките за Packetstorm, CentOS с инсталация по подразбиране ще се нуждае от удостоверяване на конзолата за сесиите на потребителя.

Това е сериозна уязвимост предвид мащаба на използването на Xorg. Въпреки че експлойтът се нуждае от някои предварителни настройки, за да работи, които може да не присъстват в професионална среда.

Етикети CentOS OpenBSD Xorg