Sudo — одна из ключевых утилит для управления правами доступа в операционных системах на базе Linux и Unix. Она позволяет обычным пользователям запускать команды с правами другого пользователя, чаще всего с правами root, что делает её важным элементом безопасности и управления системой. Недавно была выявлена критическая уязвимость, связанная с опцией chroot в sudo, которая позволяет локальному злоумышленнику получить права суперпользователя вне зависимости от ограничений, заданных в файле sudoers. В данной статье мы подробно разберём суть уязвимости, последствия её эксплуатации и методы защиты систем от подобных угроз. Начнём с краткого обзора механизма работы sudo и опции chroot, а затем перейдём к анализу обнаруженной проблемы и её исправлению.
Sudo долгое время остаётся стандартным инструментом для безопасного управления правами пользователей. Одной из менее известных возможностей утилиты является опция -R или --chroot, которая предназначена для запуска команды в изолированной файловой системе, изменяя корневой каталог процесса. Эта функция позволяет создавать своеобразный "песочницу" для отдельных задач, ограничивая влияние запускаемой команды на остальную систему. Однако, внедрение этой возможности оказалось сопряжено с опасностью. Уязвимость, присвоенная в базе CVE под номером CVE-2025-32463, была обнаружена в версиях sudo с 1.
9.14 по 1.9.17 включительно. Её суть заключалась в том, что команда sudo при обработке файла sudoers и выполнении чрутования директорий неправильно проверяла пути, что позволяло злоумышленнику запускать произвольный код с правами root.
Основная проблема возникала из-за того, что sudo начинал оценку пути с корневой директории, заданной пользователем в ожидаемой изоляции (chroot), ещё до окончательной проверки прав в файле sudoers. Это приводило к тому, что злоумышленник мог создать поддельный конфигурационный файл /etc/nsswitch.conf внутри директории chroot. Этот файл влиял на поведение системы при разрешении имён и загрузке библиотек, что позволяло загружать и исполнять произвольные библиотеки с привилегиями root. Таким образом, даже при отсутствии пользователя в списках правил sudoers, эксплоит позволял обойти ограничения и выполнить произвольный код с максимальными правами.
Возможность подобного обхода создавала серьёзную угрозу безопасности, особенно в многопользовательских системах и серверных инфраструктурах с разграничением доступов. Инциденты, связанные с такими уязвимостями, наносят серьёзный ущерб как частным компаниям, так и крупным организациям, приводя к потенциальным компрометациям данных и системных ресурсов. Важным аспектом является то, что уязвимость касалась системы, широко используемой в профессиональных и корпоративных сценариях, что повышало масштабы опасности. Разработчики sudo довольно быстро отреагировали на угрозу. В версии 1.
9.17p1 изменения, привнесённые в 1.9.14, были отменены, а опция chroot официально помечена как устаревшая и планируется к удалению в будущих релизах. Такое решение связано со сложностью корректного и безопасного внедрения механизма chroot в sudo, особенно в контексте правильного разрешения путей и проверки прав доступа.
Пользователям настоятельно рекомендуется обновлять sudo до версии 1.9.17p1 и выше, чтобы защитить свои системы от возможных атак. Помимо обновления, важно проводить аудит конфигураций sudoers, минимизировать использование опции chroot, а также следить за обновлениями безопасности и рекомендациями разработчиков. Эта уязвимость демонстрирует, насколько тонкой и сложной задачей является обеспечение безопасности системных инструментов с широкими возможностями управления.
Малейшая ошибка в логике проверки и обработки путей может привести к серьёзным последствиям, вплоть до полного захвата контроля над системой злоумышленником. Ещё одним важным выводом является необходимость постоянного мониторинга и анализа исходных кодов критически важных компонентов системы безопасности, включая такие проекты как sudo. Внедрение практик статического анализа кода, фуззинг-тестирования и других методов по выявлению уязвимостей помогает своевременно обнаруживать проблемы и предотвращать инциденты. Для системных администраторов и специалистов по информационной безопасности данный случай — очередное напоминание о важности актуализации ПО, внимательном отношении к изменениям в инструментах управления и необходимости резервирования прав доступа. Также стоит пересмотреть использование устаревших или малоиспользуемых опций, которые могут представлять неочевидные риски.