Rust — это безопасно, говорили они. В новых утилитах Ubuntu нашли сразу сотню багов
Новый выпуск Ubuntu ещё не успел выйти, а вокруг него уже развернулась любопытная история, связанная с кибербезопасностью. Разработчики решили заранее проверить один из ключевых компонентов системы — и результаты оказались весьма неожиданными.
Компания Canonical заказала независимый аудит Rust Coreutils — набора базовых утилит, переписанных с использованием языка программирования Rust. Проверку провела команда Zellic. Итог — 113 обнаруженных проблем, включая десятки уязвимостей с идентификаторами CVE. По данным автора отчёта Рави Канта Шармы, значительную часть найденных ошибок уже устранили.
Речь идёт о замене классических GNU Coreutils — набора инструментов вроде cp, mv и rm — на более безопасную реализацию на Rust. Такой переход должен был снизить риск типичных ошибок управления памятью. Однако аудит показал, что новая реализация пока не избавилась от всех слабых мест.
В Ubuntu 26.04 LTS используется версия Rust Coreutils 0.8, в которую включили большинство исправлений. При этом часть ключевых утилит всё ещё остаётся за GNU Coreutils. Причина — нерешённые проблемы класса TOCTOU, связанные с расхождением между проверкой состояния и последующим использованием данных. Такие уязвимости могут открывать путь к атакам при работе с файловой системой.
В Ubuntu не скрывают, что текущий релиз — лишь промежуточный этап. Разработчики рассчитывают довести проект до полной замены GNU Coreutils уже к версии 26.10. К этому моменту оставшиеся проблемы должны устранить, а новая реализация — стать основой системы.
Подробный отчёт Zellic пока не опубликован полностью, но уже ясно, что переход на Rust оказался сложнее, чем ожидалось. Вместе с тем сама стратегия остаётся прежней — постепенно заменить критические компоненты на более безопасные аналоги, не ломая стабильность системы.