LinuxForum.Fans
Тема

В sudo устранена уязвимость, позволяющая переписать файл на системах с SELinux

Автор: R2-D2 19 сообщений 583 просмотров
31.05.2017 20:54 #423363


В утилите sudo, применяемой для организации выполнения команд от имени других пользователей, выявлена опасная уязвимость (CVE-2017-1000367). Проблема позволяет переписать любой файл в системе, например, /etc/shadow, и проявляется только если пользователю делегировано выполнение определённых привилегированных операций в /etc/sudoers, в системе включен SELinux и sudo собран с поддержкой SELinux. Уязвимость устранена в обновлении sudo 1.8.20p1, а также в пакетах дистрибутивов RHEL 6/7, Fedora, Ubuntu, Debian, SUSE и openSUSE. Уязвимость эксплуатируется через создание символической ссылки на исполняемый файл sudo, с заданием для ссылки имени, содержащем пробел, после которого следует число. При разборе файла /proc/[pid]/stat после запуска по такой ссылке программа sudo пытается определить номер устройства tty, к которому прикреплён текущий процесс, но так как в качестве разделителей /proc/[pid]/stat применяются пробелы, запуск через ссылку с пробелом в имени нарушает порядок разбора и позволяет подставить фиктивный номер устройства, не связанные с каким-то уже существующим устройством в каталоге /dev. Используя данный фиктивный номер устройства sudo не может найти терминал текущего процесса в каталоге /dev/pts, после чего пытается найти устройство в каталоге /dev. Атакующий может подобрать момент и создать новый псевдотерминал в момент, когда sudo уже проверил /dev/pts но ещё не начал проверку в /dev (например, используя inotify для отслеживания открытия каталога), и установить на него символическую ссылку в каталоге /dev (напирмер, каталог /dev/shm доступен всем на запись), после чего данный файл будет воспринят sudo как текущий терминал. При указании роли SELinux через опцию "-r role" в командной строке при вызове sudo, данное устройство будет использовано для stdin, stdout и stderr. Заменив символическую ссылку с псевдотерминала на реальный файл, можно переписать его содержимое (sudo выводит в stderr все аргументы командной строки в случае ошибки, например, можно вместо опции передать '--\nHELLO\nWORLD\n'). Например, переписав /etc/shadow или /etc/sudoers можно получить полномочия root.
Источник: http://www.opennet.ru/opennews/art.shtml?num=46633

_источник

01.06.2017 09:23 #423364

Какая неожиданность!!!

Сколько ещё не устранено?

И сколько тут юзверей кидало в меня тапками за то, что я утверждал, что sudo есть зло в принципе?

01.06.2017 09:27 · отредактировано #423365
"R2-D2" написал:
Уязвимость  устранена в обновлении sudo 1.8.20p1, а также в пакетах дистрибутивов RHEL 6/7, Fedora, Ubuntu, Debian, SUSE и openSUSE.

И в Arch Linux :)

01.06.2017 09:43 #423366
"stranger" написал:
И сколько тут юзверей кидало в меня тапками за то, что я утверждал, что sudo есть зло в принципе?

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

01.06.2017 10:07 #423367
"lone_wolf" написал:
что предлагаешь использовать вместо sudo?

su

01.06.2017 10:22 #423368
"stranger" написал:
su

Так ведь тоже опасно :)

01.06.2017 11:17 #423370
"stranger" написал:
su

Один старый умудренный опытом Linux Админ так сказать мой гуру с которым мне довелось поработать не долго. Так вот он на всех своих серверах глушил su и рекомендовал это делать мне (причину сходу не вспомню но покопаюсь в архивах памяти).

01.06.2017 11:19 #423371
"Wolf" написал:
тоже

Не "тоже". В одном случае пароль долбодятла-юзверя, в другом рута, который пароль юзверь знать не должен.
Добавлено: 01.06.2017 12:19:50

"lone_wolf" написал:
причину сходу не вспомню

Аргумент! :D

01.06.2017 11:29 #423372
"stranger" написал:
В одном случае пароль долбодятла-юзверя, в другом рута, который пароль юзверь знать не должен.

А если долбодятел-юзвер и рут - это одно лицо ? :D

01.06.2017 11:48 #423374
"stranger" написал:
Аргумент! ag

Согласен не красиво с моей стороны вышло :[

"stranger" написал:
Не "тоже". В одном случае пароль долбодятла-юзверя, в другом рута, который пароль юзверь знать не должен.

Нет ничего сложного 1-парметром это включается и в sudo. И тогда sudo начинает просить пароль не пользователя а именно root

01.06.2017 13:52 #423380
"stranger" написал:
И сколько тут юзверей кидало в меня тапками за то, что я утверждал, что sudo есть зло в принципе?

Судя по всему SELinux тоже зло *CRAZY*

01.06.2017 16:51 #423382
lone_wolf написал:
[quote="stranger"]Аргумент! ag

Согласен не красиво с моей стороны вышло :[

"stranger" написал:
Не "тоже". В одном случае пароль долбодятла-юзверя, в другом рута, который пароль юзверь знать не должен.

Нет ничего сложного 1-парметром это включается и в sudo. И тогда sudo начинает просить пароль не пользователя а именно root[/quote]

Я букварь читал. Вопрос: зачем sudo?

01.06.2017 17:01 · отредактировано #423383

Тут и спорить не о чем, sudo однозначно предпочтительнее, чем su. Поскольку не требует ввода пароля root.
Всё остальное (уязвимости, реализации и т.п.) - предмет обсуждения. Но при прочих равных конечно надо использовать sudo.

Каким бы идеальным и неуязвимым ни был бы su - ввод пароля рута сводит всё на нет. Ведь он может быть перехвачен другими программами.

01.06.2017 18:27 #423384
"Vascom" написал:
предпочтительнее, чем su. Поскольку не требует ввода пароля root

Вот-вот... И кажНый юзверь в состоянии угробить ОС.
Добавлено: 01.06.2017 19:27:55

"Vascom" написал:
ввод пароля рута сводит всё на нет

Конечно! Вот только юзверь обязан его не знать.

01.06.2017 19:23 · отредактировано #423385
"stranger" написал:
И сколько тут юзверей кидало в меня тапками за то, что я утверждал, что sudo есть зло в принципе?

Хорошо, лично мне sudo применять не нравится, тем более что я в одном лице - юзер и root, после установки sudo в Магее начинается путаница, одним прогам достаточно sudo (соответственно пароль юзера), другим по любому подавай только su (соответственно пароль root), например при установке стороннего антивируса DrWeb или сканера Bitdefender, они требуют sudo.
Но вот например, есть второй пользователь, как ему дать повышенные права (для установки программ из репо), но не давать повышенные привелегии вообще, чтоб не лез куда не следует?

01.06.2017 19:50 #423386
"algri14" написал:
Но вот например, есть второй пользователь, как ему дать повышенные права (для установки программ из репо), но не давать повышенные привелегии вообще, чтоб не лез куда не следует?

Например как тут.
Повышенные права будут выполняться только для одной программы.

01.06.2017 20:09 · отредактировано #423388
"stranger" написал:
Вопрос: зачем sudo?

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

01.06.2017 21:25 #423394
"algri14" написал:
при установке стороннего антивируса DrWeb или сканера Bitdefender, они требуют sudo

КТО??? Что за бред? Рут без путей

text
su -

И делай всё, что хошь! Что за виндузячество???

02.06.2017 15:02 #423421
"stranger" написал:
su -
И делай всё, что хошь! Что за виндузячество???

Нет, антивирус DrWeb или сканер Bitdefender (и не только они), требуют именно sudo прав от юзера

"lone_wolf" написал:
Ну вот sudo выполняет с повышенными правами только то что написал оператор, и при этом запрашивается пароль, "парень ты уверен что ты хочешь этого, ты подумал?" Да это банальный барьёр, но он даёт шанс задумался а стоит ли это делать.

На самом деле никакой ни разу ни барьер — "уж если ОН решил, то выпьет обязательно" *ROFL*

Войдите или зарегистрируйтесь, чтобы ответить.