🐧 Ошибка Sudo позволяет пользователям Linux запускать команды с правами суперпользователя

Ошибка Linux, обнаруженная в Linux: операционная система Linux считается безопасной операционной системой, она хорошо справляется с недостатками и уязвимостями, но это не означает, что она полностью безопасна, некоторые ошибки все еще могут скрываться в тени.

Эксплойт больше не актуален в последней версии Sudo.

Недостаток затрагивает все версии Sudo до последней выпущенной версии 1.8.28.

Один такой недостаток был обнаружен в функции Sudo, которая широко используется для запуска программ, скриптов и выполнения команд с правами root.

Недостаток позволяет любому скрипту быть выполненным с привилегиями суперпользователя от пользователя, не имеющего root-доступ.

Команда Sudo (superuser do) – это широко используемая команда в операционной системе Linux.

Sudo отвечает за обработку прав суперпользователя.

Недостаток затрагивает все версии Sudo до последней выпущенной версии 1.8.28.

Уязвимость отслеживается как CVE-2019-14287 и обнаружена Джо Венниксом из Apple Information Security.

На удивление, уязвимость может быть использована злоумышленником для запуска команд от имени пользователя root, просто указав идентификатор пользователя «-1» или «4294967295.»

Давайте разберемся с дизайном недостатка и с чем именно связана эта уязвимость.

Функция, которая преобразует UID (идентификатор пользователя) в свое имя пользователя, неправильно обрабатывает -1, или его неподписанный эквивалент 4294967295, как 0, всегда является идентификатором пользователя root.

С облегчением можно сказать, что атака работает только по конкретным сценариям.

Но всем пользователям Linux по-прежнему рекомендуется обновиться до последней версии Sudo как можно скорее.

Потому что, в конце концов, меры предосторожности всегда лучше лечения.

Теперь для примера сценария атаки.

Если в файле конфигурации политики безопасности /etc/sudoers указано:

myhost bob = (ALL, !root) /usr/bin/vi

Т.е. пользователь bob может запускать программы vi от любого пользователя, кроме root.

sudo -u#-1 id -u OR sudo -u#4294967295 id -u

Команды выполнит vi с привилегиями root.

 



2019-11-13T12:05:40
Закрытие уязвимостей