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)
Ответ на: комментарий от mOximych

>> либо очень маленький опыт

2 года. Маленький?

Я всё-таки нашёл ту тему. Это тема тех годов, когда агрессивный маркетинг Canonical ещё не добыл первое место в популярности среди дистрибутивов Linux для десктопа. http://unixforum.org/index.php?showtopic=27125 Посмотри, почти никто не пользуется sudo.

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

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

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

    845 echo
    947 man
   1075 srch
   1079 rm
   1127 cat
   2072 ps
   2927 vi
   4346 sudo
   4717 cd
   6571 ls

На работе

    286 man
    325 apt-cache
    458 ping
    516 vi
    746 telnet
    777 host
    906 sudo
    931 cd
   1247 ssh
   1296 ls

Хм

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

Нет, ты. Был задан вполне понятный вопрос про одну домашнюю машину и одного юзера. А вы со sdio начали заливать про свои два десятка. Я знаю, зачем нужно sudo, мне не нужно это объяснять. А вот нахрена подменять sudo su, я не понимаю, да. На той же бубунте, например, где sudo для первого пользователя вообще без ограничений. Получается тот же root, ломай, что хочешь, только пароль юзера введи.

Deleted
()
Ответ на: комментарий от geekless
zenitur@athlon_neo ~ $ su
Пароль:
athlon_neo zenitur # history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10
     66 tor
     47 /etc/init.d/net.wlan0
     46 emerge
     37 cd
     27 nano
     23 iptables
     21 iwconfig
     20 rm
     19 privoxy
     18 ls
athlon_neo zenitur # exit
exit
zenitur@athlon_neo ~ $ history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10
    237 su
     15 youtube-dl
     12 cd
      7 ыг
      7 ogg123
      6 vlc
      5 kill
      4 smplayer
      4 nano
      4 mc

Команда выявила у меня две проблемы. tor от root потому что от пользователя не запускается с момента обновления на альфа-версию, что бы я ни делал. 237 раз su потому что история сохраняется как-то неприавильно. Посмотрел права на файл, там вместо zenitur:users - zenitur:zenitur. Может поэтому...

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

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

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

Очевидно, ubuntu из коробки готова для использования одного компьютера несколькими людьми, если тебе это не нужно, используй другой дистрибутив, не все используют компьютер в одиночку. И причём тут вообще подмена?

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

Тебе дали конкретный ответ ситуация с одним единственным юзером редкая и если такому пользователю sudo не нужен, то никто ему его и не навязывает. Если ты знаешь ответ на свой вопрос, то зачем спрашивал? Потроллить захотелось?

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

а теперь один из этих пользователей должен иметь право выполнять еще одну команду, а другой нет
и так далее

xtraeft ★★☆☆
()

Linux 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux полет нормальный =)

shybovycha
()

sudo нужен, т.к. позволяет гибко делегировать права рута отдельным пользователям. И без нового костыля вы штатными средствами сделать это не сможете.

Нашли баг, исправили, запомнили на будущее лучше проводить аудит нового кода.

Истеричная школота меня просто шокирует своей тупизной.

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

Ты спросил,

как мне chmod разрешить запуск бинарника только двум пользователям, а остальным нет

Я ответил.

Зачем тебе эти костыли, я не знаю.

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

еще поддержка безпарольного запуска бывает нужна

Это включено в «гибко делегировать права рута»

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

Очевидно, ubuntu из коробки готова для использования одного компьютера несколькими людьми

Из коробки - это если бы у ней была понятная графическая утилита настройки sudo для разных пользователей. А package manager install sudo ума много не надо, да.

И причём тут вообще подмена?

При том, что первому созданному пользователю даются права, эквивалентные правам пользователя root. На что угодно, хоть на rm -rf /*.

Deleted
()

Кстати, то-то я смотрю, сегодня обновление вылезло:

sudo 1.8.3.p2-2

Eddy_Em ☆☆☆☆☆
()

пруф или я лох:

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

Из коробки - это если бы у ней была понятная графическая утилита настройки sudo для разных пользователей

из гуя можно запретить пользователю sudo, этого вполне достаточно для средней домашней машины.

При том, что первому созданному пользователю даются права, эквивалентные правам пользователя root. На что угодно, хоть на rm -rf /*.

В debian'е первый пользователь знает пароль рута на что угодно, хоть на rm -rf /*, и что теперь то?

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

ситуация с одним единственным юзером редкая

Очень сомневаюсь. Например, у всех моих знакомых с линуксом и без в системе только один простой пользователь.

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

Вот, говорил я, что su - намного лучше...

Топор (su) лучше скальпеля (sudo).

Только у лесоруба и хирурга будет разное отношение к этому утверждению.

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

из гуя можно запретить пользователю sudo, этого вполне достаточно для средней домашней машины.

Вот это и есть та подмена, о которой я говорил.

В debian'е первый пользователь знает пароль рута

Откуда?

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

Очень сомневаюсь. Например, у всех моих знакомых с линуксом и без в системе десятки простых пользователей

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

Ну, к сожалению, мне приходится и sudo использовать (т.к. в долбаном ntfs-3g испортили опцию user и только рут может смонтировать/отмонтировать):

ALL ALL=(ALL) NOPASSWD: /bin/ntfs-3g,/bin/mount,/bin/umount

Eddy_Em ☆☆☆☆☆
()

Хуу, отлегло, все пучком

doomgl
()
Ответ на: комментарий от xtraeft

дать 1 юзеру возможность запуска одного бинарника с рутовыми правами

покажи мне решение без судо

SUID-бит на бинарник.

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

У меня на домашнем компьютере только два пользователя: я и anonymous. Плюс еще фиктивные пользователи без пароля и с /sbin/nologin для ftp.

А на работе - да, есть еще пользователи. Сетевые. Но прав у них чуть больше, чем ничего.

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

Что безопаснее suid бит на /sbin/{shutdown,reboot} или sudo с NOPASSWD для всех юзверей на /sbin/{shutdown,reboot}?

^-M-Del

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

Испортили. Раньше эта опция работала. Кстати, еще было время, когда опцию locale испортили. Но, к счастью, вовремя опомнились и починили.

Eddy_Em ☆☆☆☆☆
()

У меня работает. В генте все всегда работает :)

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

вчера еще спрашивали, почему мне не нравится sudo.

а дело не в sudo, в su, да и любом suid-бинарнике может быть такая фигня.

Но дело в том, что в случае с sudo ты можешь гибко настраивать права, su тебе не даёт такой возможности

а ошибки везде могут быть

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

suid

> покажи мне решение без судо
SUID-бит на бинарник

ололо! вместо того, чтобы искать и исправлять ошибки в 1 проге - предлагаешь делать это в 100500 сразу.

mumpster ★★★★★
()
Ответ на: комментарий от jsignal
user@linux:~> lsb_release -a
LSB Version:    n/a
Distributor ID: SUSE LINUX
Description:    openSUSE 12.1 (x86_64)
Release:        12.1
Codename:       Asparagus

user@linux:~> sudo -V
Sudo version 1.8.2
Sudoers policy plugin version 1.8.2
Sudoers file grammar version 40
Sudoers I/O plugin version 1.8.2

user@linux:~> /sbin/ifconfig eth0 down
SIOCSIFFLAGS: Permission denied
user@linux:~> ./%s /sbin/ifconfig eth0 down
root's password:
homyach
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.