LINUX.ORG.RU
ФорумTalks

Очередные иксовые технические отверстия

 , ,


0

2

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

Третья уязвимость (CVE-2022-4883) позволяет запустить произвольные команды при выполнении приложений, использующих libXpm. При запуске связанных с libXpm привилегированных процессов, например, программ с флагом suid root, уязвимость даёт возможность поднять свои привилегии.

Уязвимость вызвана особенностью работы libXpm со сжатыми файлами XPM - при обработке файлов XPM.Z или XPM.gz библиотека при помощи вызова execlp() запускает внешние утилиты распаковки (uncompress или gunzip), путь к которым вычисляется на основе переменной окружения PATH. Атака сводится к размещению в доступном пользователю каталоге, присутствующем в списке PATH, собственных исполняемых файлов uncompress или gunzip, которые будут выполнены в случае запуска приложения, использующего libXpm.

Уязвимость устранена заменой вызова execlp на execl с использованием абсолютных путей к утилитам.

★★★★★

Последнее исправление: Siborgium (всего исправлений: 1)

например, программ с флагом suid root
Атака сводится к размещению в доступном пользователю каталоге, присутствующем в списке PATH, собственных исполняемых файлов

Чтобы получить права рута, пользователю нужны права создавать исполняемые файлы, запускающиеся от рута. Вот так дырища, с ума сойти.

Теперь, когда всем уже понятно, что по ссылке я не ходил, у меня вопрос: а причем тут иксы, в вяленом что, это не будет работать?

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от thesis

пользователю нужны права создавать исполняемые файлы, запускающиеся от рута.

В PATH может быть и юзерский каталог без рутовых прав. Обычно не рекомендуется с т.з. безопасности, но даже в дефолтном дебиановском /etc/skel/profile есть такое:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi
alegz ★★★★
()
Ответ на: комментарий от alegz

без рутовых прав

Suid должен стоять на «родительской» программе, которая использует libXpm. Интересно, встречалось ли такое в истории человечества.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от Siborgium

Должна. Но библиотеку писали под иксы авторы иксов – и получилось под стать, такое же дырявое.

В самой либе libxpm нет поднятия привилегий, сюдя по описанию. Есть только вызов внешней проги gunzip. Так таких программ миллион можно найти, которые для обработки архива вызывают внешний архиватор.

sigurd ★★★★★
()

При запуске связанных с libXpm привилегированных процессов, например, программ с флагом suid root

А какие suid программы линкуют libXpm?

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

Гипотетические. Как и сама уязвимость.

rupert ★★★★★
()

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

Aceler ★★★★★
()

Я правильно понимаю, что вот это вот, та самая «Великая дидовая иксоакрхитектура»?

https://gitlab.freedesktop.org/xorg/lib/libxpm/-/commit/515294bb8023a45ff916696d0a14308ff4f3a376#1d510b0d6357799d7e509712df569ba0edabca53

Когда вместо использования zlib.h нужно спавнить аналоги system("gzip -d my_shitty_icon.xpm.gz") прямо в либе?

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

Посмотрел, что зависит от libxpm и установлено у меня на Debian. Обычные пользовательские программки: ddd, emacs-gtk, grace, gimp, imview, libforms2, libgd3, libxaw7, libxmhtml1.1, texlive-binaries, wmwave, xpaint, xterm. Из интересного не установленного заметил разве что: xdm, nxagent.

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

Системные иконки вообще лучше хранить в несжатых битмапах, чтобы потом загружать mmap-ом и шарить память между процессами. Как в gtk-update-icon-cache.

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

Интереснее, конечно, копнуть, кто и когда этот код писал. Наверняка ещё из XFree86 лезет.

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

Так то оно так, только личности типа @Iron_Bug, @Quasar или @Odalist считают, что Wayland и systemd создают ламеры и макаки. Ссылкой от @EXL можно неплохо потроллить тех, кто думает, будто новые технологии в линуксе разрабатывают хипстеры-быдлокодеры

hateWin ★☆
()
Последнее исправление: hateWin (всего исправлений: 1)

Иксы гавнень конечно (особенно хорошо я это понял, переехав с вяленда обратно на иксы), но эта уязвимость выглядит вымученной

alex1101
()
Ответ на: комментарий от hateWin

Ссылкой от @EXL можно неплохо потроллить тех, кто думает, будто новые технологии в линуксе разрабатывают хипстеры-быдлокодеры

Подожди, а как ссылка на быдлокодеров прошлого отменяет быдлокодерство нынешних?

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

Во-первых, я хочу увидеть ссылку на такой же звездец в исходниках libwayland* или какого-либо композитора. Во-вторых, если качество кода и в иксах и в вайланде одинаковое – аргумент про быдлокод лишается смысла.

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

Во-первых, я хочу увидеть ссылку на такой же звездец в исходниках libwayland*

А почему именно libwayland? Давай поищем звездец в альтернативной, написанной командой разработчиков вяленого, либе для работы с XPM.
Ой, чот не нахожу такой. Помоги, а?

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

А-фу-еть. В системной библиотеке на швитой сишечке system дёргают как в php. Остановите планету, я сойду.

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