Уязвимость sudo позволяет изменить любой файл и получить root в системе

Уязвимость sudo позволяет изменить любой файл и получить root в системе

Специалисты французской ИБ-компании Synacktiv обнаружили в sudo возможность обхода политик sudoers при использовании опции –e (команды sudoedit), безопасно запускающей редактор. Уязвимость грозит несанкционированным изменением важных файлов и позволяет локально повысить привилегии до суперпользователя.

Сисадмины используют sudo для делегирования полномочий на запуск команд, в том числе с правами root. При выполнении sudoedit запускается программа-редактор, указанная в переменной окружения, но перед этим фронтенд sudo производит проверку разрешений на редактирование целевых объектов — по содержимому файла sudoers.

При положительном результате проверки модуль sudoers передает на фронтенд вектор-аргумент с заданным редактором, к которому через разделитель «--» добавлен список файлов, выбранных пользователем. Таким образом, все, что идет после символа «--», система воспримет как файлы, подлежащие редактированию, создаст временные копии и запустит процесс с правами инициатора.

Проблема CVE-2023-22809, выявленная экспертами Synacktiv (PDF) в механизме sudoedit, вызвана некорректной обработкой аргументов, передаваемых в переменных окружения. В итоге злоумышленник с привилегиями sudoedit может получить доступ к любым файлам в системе, добавив лишний аргумент «--» в SUDO_EDITOR, VISUAL или EDITOR.

Уязвимости подвержены все прежние версии sudo, начиная с 1.8.0. Патч включен в состав сборки 1.9.12p2. В качестве временной меры защиты можно запретить обработку SUDO_EDITOR, VISUAL и EDITOR, добавив в sudoers следующую строку:

 

Можно также ввести ограничения для редактора с помощью Cmnd_Alias: