• XSS.stack #1 – первый литературный журнал от юзеров форума

В команде sudo в Linux нашли уязвимость, которая дает права суперпользователя

netcat

(L3) cache
Забанен
Регистрация
26.07.2019
Сообщения
158
Реакции
448
Пожалуйста, обратите внимание, что пользователь заблокирован
Специалист компании Apple Джо Венникс рассказал об уязвимости (CVE-2019-14287) в команде sudo в Linux. Она позволяет непривилегированным пользователям запускать команды с правами суперпользователя.

Однако данная проблема возникает лишь при нестандартных настройках конфигурации и не затрагивает большинство Linux-серверов.

Команда sudo дает возможность непривилегированным пользователям с соответствующим разрешением или паролем суперпользователя выполнять на Linux-машинах команды с его правами. При добавлении инструкций в конфигурационный файл /etc/sudoers команду можно настроить для запуска команд от имени другого пользователя, однако это невозможно в отношении суперпользователей. Именно при этих настройках конфигурации пользователи могут обойти ограничения и запускать команды с привилегиями суперпользователя, добавив в командную строку -u#-1, выяснил Венникс.

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

Венникс отметил, что -u#1234 может использоваться как идентификатор пользователя 1234 в командной строке с sudo для запуска команд, в данном случае Vi. Sudo передает это значение идентификатора через системные вызовы setresuid и setreuid для изменения эффективного ID пользователя команды. -u#-1 же передает через вызовы -1 для изменения эффективного идентификатора на -1. Системный вызов принимает данный ID в качестве особенного и не меняет идентификатор пользователя. У sudo изначально есть права суперпользователя, и -1 продолжает работать как суперпользователь. Идентификатор пользователя 4294967295 тоже может обходить ограничения, поскольку, будучи знаковой 32-разрядной целочисленной переменной, он равен -1.

Специалист посоветовал пользователям обновить sudo до версии 1.8.28 или более поздней версии, так как в них -1 больше не принимается в качестве идентификатора

Исправление также доступно в форме патча. В дистрибутивах уязвимость уже устранена в Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD.


habr
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх