В пакете sudo, применяемом для организации выполнения команд от имени других пользователей, выявлена уязвимость (CVE-2023-22809), позволяющая локальному пользователю отредактировать любой файл в системе, что, в свою очередь, позволяет добиться получения прав root через изменение /etc/shadow или системных скриптов. Для эксплуатации уязвимости требуется, чтобы в файле sudoers пользователю было предоставлено право запускать утилиту sudoedit или “sudo” с флагом “-e”.
Уязвимость вызвана отсутствием должной обработки символов “–” при разборе переменных окружения, определяющих программу, вызываемую для редактирования файла. В sudo последовательность “–” используется для отделения редактора и аргументов от списка редактируемых файлов. Атакующий может добавить в переменные окружения SUDO_EDITOR, VISUAL или EDITOR последовательность “– файл” после пути к редактору, что приведёт к инициированию редактирования указанного файла с повышенными привилегиями без проверки правил доступа пользователя к файлам.
Уязвимость проявляется начиная с ветки 1.8.0 и устранена в корректирующем обновлении sudo 1.9.12p2. Публикацию обновлений пакетов в дистрибутивах можно проследить на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch, FreeBSD, NetBSD. В качестве обходного пути защиты можно отключить обработку переменных окружения SUDO_EDITOR, VISUAL и EDITOR, указав в sudoers: