
Компания Canonical опубликовала предварительные результаты внешнего аудита безопасности инструментария uutils coreutils, написанного на языке Rust. Этот пакет частично заменяет классический GNU Coreutils в дистрибутиве Ubuntu. Проверку провела компания Zellic, специализирующаяся на поиске уязвимостей в Rust-проектах. Всего в ходе анализа было выявлено 113 проблем с безопасностью.
Результаты первого этапа аудита
Отчёт охватывает наиболее критически важные утилиты из набора uutils. В ходе проверки, проводившейся с декабря 2025 по январь 2026 года, эксперты обнаружили 73 уязвимости. Из них 7 классифицированы как критические, 11 — как опасные, 29 — средней степени риска и 26 — как неопасные. Данные о находках были переданы разработчикам, и большая часть проблем уже устранена в версиях uutils 0.5–0.8.
Изменения в Ubuntu 26.04
Напомним, что пакет rust-coreutils был внедрен по умолчанию в осеннем релизе Ubuntu 25.10. Однако из-за результатов аудита в LTS-версии Ubuntu 26.04 было решено вернуть привычные утилиты cp, mv и rm из состава GNU Coreutils. По состоянию на 22 апреля в этих утилитах оставалось 8 неисправленных состояний гонки (race conditions). Остальные инструменты в системе продолжают использовать версию rust-coreutils 0.8.0. В планах разработчиков Ubuntu — осуществить полный переход на rust-coreutils в релизе 26.10.
Опасность системных утилит
Уязвимости в таких инструментах крайне опасны, так как они часто задействуются в скриптах, исполняемых с правами суперпользователя (root). Например, ранее устраненная проблема в rm могла быть эксплуатирована через ежедневный cron-скрипт /etc/cron.daily/apport, который работает от имени root и очищает директорию /var/crash, доступную на запись всем пользователям.
Критические уязвимости в uutils
Среди наиболее серьезных угроз, отмеченных в первом отчёте, выделяются следующие:
- Уязвимость в chroot: из-за обработки опции
--userspecдо момента сброса привилегий злоумышленник мог подменить NSS-библиотеки и добиться выполнения кода с правами root. - Проблемы с mkfifo: при работе с уже существующим файлом утилита ошибочно изменяла права доступа к нему, что позволяло получить несанкционированный доступ к защищенным данным.
- Обход —preserve-root в chmod: из-за отсутствия канонизации путей защита от рекурсивных операций над корнем файловой системы легко обходилась через символические ссылки или пути вида
/../. - Ошибки в rm: утилита допускала использование сокращенных опций для обхода защиты
--preserve-root, что грозило случайным удалением всех данных в системе. Также наблюдались проблемы с обработкой путей, начинающихся с точки. - Ошибка в kill: некорректный разбор аргументов позволял отправить сигнал всем процессам в системе при передаче идентификатора
-1.






