Пользователи, работающие с командной строкой в Linux или на платформе Unix, такой как macOS, вероятно, знакомы с командой sudo. Это программа для системного администрирования, позволяющая делегировать привилегированные ресурсы пользователям с ведением протокола работы.
Основная идея команды sudo состоит в том, чтобы дать пользователям права, необходимые для решения поставленных задач. Но как оказалось, эта команда содержала уязвимость безопасности, которая позволяла запрашивать доступ на уровне root, даже если конфигурация явно запрещает это. До тех пор, пока у злоумышленника был доступ, достаточный для запуска команды sudo, он мог выполнять любые действия на данной машине.
Причина уязвимости была сокрыта в том, как sudo обрабатывает идентификаторы пользователей. Если ввести команду с идентификатором пользователя -1 или 4294967295, то она будет выполняться так, как если бы имелся root-доступ (идентификатор пользователя 0), даже если и записала фактический идентификатор пользователя в журнал. Указанные идентификаторы пользователей даже не существуют в базе данных паролей, поэтому команде не потребуется пароль для их использования.
Пользователи Linux могут обновиться до более нового пакета sudo (1.8.28 или новее), где уже устранена эта ошибка.