sudo, который на Rust написанВообще это знаковый момент, потому что
1. Аналог будет включен в поставку популярного дистрибутива
2. Это первый шаг популяризации новой генерации утилит, которые могут заменить старые с "историческими проблемами"
Я лично не перехожу ни на какие модные "💥blazing💪fast🚀" утилиты пока они не появляются в репозиториях дистрибутивов, которые я использую. Так что будем посмотреть.
Компания Canonical намерена в осеннем выпуске Ubuntu 25.10 задействовать по умолчанию аналог утилиты sudo, развиваемый проектом sudo-rs и написанный на языке Rust. В марте аналогичное решение было принято в отношении замены утилит GNU Coreutils на инструментарий uutils. На стадии рассмотрения находятся инициативы по замене zlib и ntpd на zlib-rs и ntpd-rs, а также задействованию Sequoia вместо GnuPG в пакетном менеджере APT.
В sudo-rs по возможности обеспечена совместимость с классическими утилитами sudo и su, позволяющая использовать sudo-rs в качестве прозрачной замены sudo в большинстве сценариев использования. Для пользователей, не желающих переходить на uutils и sudo-rs, в Ubuntu 25.10 будет предоставлена опция для отката на классические варианты системных утилит coreutils и sudo.
. . .
Замена системных компонентов производится в рамках инициативы по повышения качества системного окружения через поставку программ, изначально разрабатываемых с оглядкой на безопасность, надёжность и корректность. Поставка утилит, написанных на языке Rust, даст возможность снизить риск появления ошибок при работе с памятью, таких как обращение к области памяти после её освобождения и выход за границы буфера. Если эксперимент будет признан удачным, то утилиты на Rust будут задействованы по умолчанию в LTS-ветке Ubuntu 26.04.
В Ubuntu 25.10 решено задействовать аналог sudo, написанный на Rust
https://www.opennet.ru/opennews/art.shtml?num=63197
Правильное использование Rust позволит закрыть часть проблем. Вот примеры CVE относящиеся к
sudo- CVE-2019-18634 - получение root через переполнение (https://github.com/saleemrashid/sudo-cve-2019-18634/)
- CVE-2021-3156 - получение root через переполнение (https://github.com/worawit/CVE-2021-3156)
Но
sudo-rs точно предстоит ещё много работы, что бы "обкататься" с логикой работы. Вот, например, CVE-2023-42456For example we could add a user to the system containing the username `../../../../bin/cp`. When logged in as a user with that name, that user could run `sudo -K` to clear their session record file. The session code then constructs the path to the session file by concatenating the username to the session file storage directory, resulting in a resolved path of `/bin/cp`. The code then clears that file, resulting in the `cp` binary effectively being removed from the system. An attacker needs to be able to login as a user with a constructed username. Given that such a username is unlikely to exist on an existing system, they will also need to be able to create the users with the constructed usernames...The `sudo -K` and `sudo -k` commands can run, even if a user has no sudo access.
http://cve.org/CVERecord?id=CVE-2023-42456
GitHub проекта
https://github.com/trifectatechfoundation/sudo-rs