LINUX.ORG.RU

Обнаружена уязвимость в sudo

 , ,


0

3

В популярной утилите для запуска программ от других пользователей обнаружена уязвимость, потенциально позволяющая получить привилегии root.

Баг обнаружен в функции sudo_debug(), где название программы (argv[0]) передается прямо в fprintf(). Проверить наличие уязвимости можно следующим простым способом:

$ ln -s /usr/bin/sudo ./%s
$ ./%s -D9
Segmentation fault

Уязвимости подвержены версии 1.8.0-1.8.3p1. Разработчики рекомендуют обновиться до 1.8.3p2 как можно скорее.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: provaton (всего исправлений: 4)

Ответ на: комментарий от f1xmAn

man printf на предмет %n. Можно насрать в стеке затерев адрес возврата. Ну и так далее.

anonymous
()
Ответ на: комментарий от geekless

Брешут, собаки: с другими ФС все отлично работает:

# монтирование съемных накопителей
KERNEL=="sd[a-z]", GOTO="do-disk-rules"
KERNEL!="sd[a-z][0-9]", GOTO="end-of-file"
LABEL="do-disk-rules"
ACTION=="add", ENV{ID_USB_DRIVER}="usb-storage", GROUP="storage"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ACTION=="remove", ENV{ID_FS_TYPE}!="", RUN+="/bin/sed -i '/\/dev\/%k /d' /etc/fstab"
ACTION=="remove", ENV{ID_FS_TYPE}!="", RUN+="/bin/rmdir /media/$env{ID_FS_TYPE}-%k"
ACTION=="add", ENV{ID_FS_TYPE}!="", RUN+="/bin/mkdir -p /media/$env{ID_FS_TYPE}-%k"
# монтирование раздела fat32
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k vfat rw,noatime,noauto,noatime,dmask=022,user,fmask=133,iocharset=koi8-r 0 0' /etc/fstab"
# монтирование раздела ntfs
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k ntfs-3g rw,noatime,noauto,dmask=000,fmask=111,user,locale=ru_RU.koi8-r,allow_other 0 0' /etc/fstab"
# монтирование прочих ФС
ACTION=="add", ENV{ID_FS_TYPE}!="", ENV{ID_FS_TYPE}!="ntfs|vfat", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k $env{ID_FS_TYPE}  defaults,noatime,user 0 0' /etc/fstab"
LABEL="end-of-file"

Eddy_Em ☆☆☆☆☆
()

не работает

~ ln -s /usr/bin/sudo ./%s
~ ./%s -D9
./%s: invalid option -- 'D'
usage: %s -h | -K | -k | -L | -V
usage: %s -v [-AknS] [-p prompt]
usage: %s -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U username] [-u
          username|#uid] [-g groupname|#gid] [command]
usage: %s [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u
          username|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: %s -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid]
          file ...
thunar ★★★★★
()
Ответ на: комментарий от nehalem

> Зачем sudo если есть su? Убунтопроблемы.

Многие ещё до убунты пользовались, включая вручную. sdio говорит что удобно, когда пользвателей в системе много.

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

Глянул ман на pmount. Фигня какая-то: надо и устройство писать, и точку монтирования. А у меня нужная строчка добавляется в fstab и я спокойненько могу просто написать что-то вроде

mount /media/reiserfs-sdj1

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

Не врут. mount проверяет, есть ли бинарник с именем mount.типфс, и если есть, вызывает его. При этом дропает рутовые права:

801                         if (setgid(getgid()) < 0)
802                                 die(EX_FAIL, _("mount: cannot set group id: %m"));
803
804                         if (setuid(getuid()) < 0)
805                                 die(EX_FAIL, _("mount: cannot set user id: %m"));

А правильное решение такое: добавить к mount новую опцию, оставляющую форкнутый процесс под рутом.

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

А кто создаст эту директорию, если udev'у правило не давать?

Я не знаю, но кто-то создаёт. Мне похрен, оно простое, есть не просит и работает без костылей

udev + mount намного лучше.

чем лучше?

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

Линукс (ядро) потихоньку улучшается, а вот системные утилиты - да.

Такое впечатление, что у всяких чудаков на букву М (типа Поттеринга) так и чешутся руки, чтобы превратить все дистрибутивы в сраное мастдаеподобное говно!

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

Тем, что не нужно устанавливать костыль в виде pmount. А mount и udev есть везде.

что проще - установить из репозитория готовую, тестируемую, обновляемую программу, или взять твой самописный костыль?

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

И как она тебе смонтирует что-либо, если запущена без рутового uid?

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

pmount - просто suid-обертка, как я понял. Так что - велосипед что так, что эдак.

Eddy_Em ☆☆☆☆☆
()
# yum erase sudo

Первым делом.

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

И да, эти сраные ntfs-флешки/диски попадаются раз в полгода, так что мне пофиг.

Eddy_Em ☆☆☆☆☆
()

в Ubuntu не работает, уязвимость - РЕШЕТО

anonymous
()

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

// joke fixed.

решето ведь!

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

ээ у меня судо отключен(когда надо поработать за рута всёравно делаю su) и вроде как всё монтируется нормально.. (хотя может в чакре что пофиксили или просто кде монтирует иначе?)

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

кажется надо поставить дебаг пакеты.?(смотреть лень суду ставить тоже)

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

Действительно. Это ж выходит, что сбрасывать через su/sudo права со своих или рута для запуска недоверенного приложения просто нет смысла?

Felagund
()

Ubuntu 10.04:

aelius@aelius-laptop ~ $ ln -s /usr/bin/sudo ./%s
aelius@aelius-laptop ~ $ ./%s -D9
./%s: неверный ключ -- «D»
usage: %s -h | -K | -k | -L | -V
usage: %s -v [-AknS] [-p prompt]
usage: %s -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U username] [-u username|#uid] [-g groupname|#gid] [command]
usage: %s [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: %s -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] file ...
Вывод прост как и всегда: нет ключа --- нет проблемы.

Vudod ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.