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

Sudo CVE-2019-14287На днях эксперт Apple Information Security Джо Венникс обнаружил в sudo уязвимость, позволяющую пользователю повысить свои права в системе до уровня root. Свеженайденной уязвимости был присвоен идентификатор CVE-2019-14287.

Как известно, команда sudo (утилита, если быть точнее) позволяет выполнить отдельно взятую команду с привилегиями root, не открывая другой сеанс. Разрешения на использование sudo прописаны в файле /etc/sudoers. Именно с этими разрешениями и связан баг.

В заметке об уязвимости описывается пример, несколько сокращённо его приведём здесь. Допустим, у нас есть пользователь ivanov, который может запускать редактор Vi от имени любого пользователя кроме root:

ivanov = (ALL, !root) /usr/bin/vi

Между тем, используя команду

sudo -u#-1 vi

этот пользователь может обойти ограничение и запустить Vi под root.

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

Вышеописанная уязвимость исправлена в sudo версии 1.8.28. Основные дистрибутивы Linux, включая Debian, Ubuntu, Arch Linux, SUSE/openSUSE и Gentoo объявили, что пофиксили баг. Исправлена уязвимость и в системе FreeBSD.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *