Уязвимость в sudo позволяет повысить привилегии

Эксперт Apple Information Security Джо Венникс обнаружил в sudo уязвимость, которой был присвоен идентификатор CVE-2019-14287. К счастью, проблема не проявляется при стандартных настройках конфигурации, то есть большинство пользователей Linux-систем в безопасности.

Объяснить суть проблемы проще всего на примере. Баг связан с использованием правил /etc/sudoers, которые разрешают выполнение определенной команды от лица любого другого пользователя (используя его UID), кроме root. К примеру, пользователь bob как sudoer на сервере mybox может запускать текстовый редактор Vi от имени любого пользователя, кроме root:

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

Однако если воображаемый Боб воспользуется -u#-1, он сможет обойти это ограничение и запустит Vi от имени root :

sudo -u#-1 vi

По сути, для эксплуатации проблемы нужно попытаться выполнить команду с UID «-1» или «4294967295», что приведет к ее выполнению с UID 0. Дело в том, что применением -u#-1 не приводит к смене UID. Так как sudo уже выполняется как root, вместо смены UID целевая команда тоже запускается с правами root.

Венникс рекомендует пользователям обновить sudo до версии 1.8.28, выпущенной на этой неделе, где значение «-1» уже не принимается. Патч для этой проблемы уже доступен, и уязвимость устранена во всех основных дистрибутивах, включая Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD.

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.