Ubuntu 26.10 полностью переведён на Rust Coreutils - QubStore

Ubuntu 26.10 полностью переведён на Rust Coreutils

Ubuntu 26.10 избавилась от последних компонентов GNU Coreutils — теперь весь набор базовых утилит написан на Rust.

В пакетной базе Ubuntu 26.10, чей релиз запланирован на 15 октября, завершён полный перевод на инструментарий uutils coreutils (Rust Coreutils). Все компоненты GNU Coreutils заменены аналогами на Rust, в том числе cp, mv и rm — те самые утилиты, которые в Ubuntu 26.04 поставлялись из оригинального GNU-набора.

История перехода складывалась непросто. Пакет rust-coreutils появился в составе дистрибутива по умолчанию ещё в Ubuntu 25.10, однако в LTS-ветке Ubuntu 26.04 было решено откатить поставку cp, mv и rm к вариантам из GNU Coreutils. Причиной стали проблемы с безопасностью, обнаруженные при аудите кодовой базы проекта на Rust.

Основная масса уязвимостей связана с состоянием гонки TOCTOU (Time-Of-Check-To-Time-Of-Use). Эта категория ошибок позволяет изменить данные в момент после проверки корректности информации, но до выполнения самой операции. В частности, файл можно подменить символической ссылкой как раз между завершением проверки и началом операции.

При работе утилит cp, mv и rm в системных скриптах с правами root такая подстановка открывает путь к копированию, перезаписи или удалению произвольных файлов. Показательный сценарий — рекурсивное удаление каталогов: rm сначала проверяла все каталоги, а затем последовательно удаляла их в обратном порядке через rmdir(). Если подменить родительский каталог символической ссылкой сразу после его проверки, но до проверки вложенных дочерних каталогов, можно добиться удаления любого каталога в системе. Например, при ежедневном запуске из cron скрипта /etc/cron.daily/apport, который с правами root рекурсивно чистит содержимое доступного на запись всем пользователям каталога /var/crash.

Ссылка на основную публикацию