LINUXTALKS.CO

В Rust Coreutils выявлено 113 уязвимостей. В Ubuntu 26.04 возвращены cp, mv и rm из GNU Coreutils

 , , , ,

L


0

1

Компания Canonical опубликовала предварительные итоги независимого аудита безопасности инструментария uutils coreutils (Rust Coreutils), написанного на языке Rust и частично применяемого в Ubuntu вместо пакета GNU Coreutils. Аудит был выполнен компанией Zellic, имеющей опыт анализа уязвимостей в проектах на языке Rust. В ходе проверки было выявлено 113 проблем с безопасностью.

В настоящее время уже доступен отчёт (PDF, 156 страниц) с результатами первого этапа аудита, охватывающего наиболее важные утилиты из набора uutils. На первом этапе, который был проведён с декабря 2025 по январь 2026 года, было выявлено 73 уязвимости, из которых 7 отмечены как критические, 11 - опасные, 29 - средней опасности и 26 - неопасные.

Второй этап аудита был проведён с февраля по март и охватывал второстепенные утилиты, не проверенные на первом этапе. На втором этапе было найдено 40 уязвимостей, опасность которых пока не детализируется (отчёт планируют опубликовать позднее). Информация о всех выявленных проблемах уже передана разработчикам uutils и большая часть уязвимостей была устранена в выпусках uutils 0.5-0.8 без лишней огласки и пометки связи вносимых исправлений с устранением уязвмостей.

Пакет rust-coreutils был включён по умолчанию в осеннем выпуске Ubuntu 25.10, но с учётом выявленных в ходе аудита проблем в LTS-ветке Ubuntu 26.04 возвращены утилиты cp, mv и rm из набора GNU Coreutils. Отмечается, что по состоянию на 22 апреля в данных утилитах остаётся не исправлено 8 известных состояний гонки. Остальные утилиты задействованы из выпуска rust-coreutils 0.8.0. В Ubuntu 26.10 разработчики намерены полностью перейти на rust-coreutils.

Уязвимости в системных утилитах опасны тем, что они используется в скриптах, запускаемых с правами root. Например, устранённая в выпуске uutils coreutils 0.3.0 уязвимость в утилите rm могла быть эксплуатирована при ежедневном запуске из cron скрипта /etc/cron.daily/apport, который выполняется с правами root и рекурсивно удаляет содержимое каталога /var/crash, доступного на запись всем пользователям в системе.

Среди уязвимостей, помеченных в первом отчёте критическими:

  • Уязвимость в утилите chroot, вызванная обработкой опции «–userspec» после вызова chroot(), но до сброса привилегий. На системах с glibc резолвинг имён через функцию getpwnam() приводит к чтению файла /etc/nsswitch.conf, применяемого в NSS (Name Service Switch), и динамической загрузке указанных в нём библиотек с модулями NSS (libnss_*.so.2). Так как до обработки NSS выполяется вызов chroot() файл /etc/nsswitch.conf загружается относительно нового корня, но NSS-библиотеки загружаются до сброса привилегий. Если пользователь имеет доступ на запись к новому корню, то он может подставить свои NSS-библиотеки и добиться выполнения кода с правами root.
  • Изменение прав доступа к файлу после сбоя создания именованного канала (FIFO) утилитой mkfifo - если указать в качестве аргумента существующий файл, то mkfifo вернёт ошибку, но при этом аварийно не завершит работу, а выполнит вызов set_permissions() и изменит права доступа к существующему файлу. С учётом umask 022 уязвимость позволяет поменять права доступа к файлу на 644 (rw-r-r-) и получить доступ к файлам, для которых не было разрешено чтение.
  • Обход ограничений «–preserve-root» в утилите chmod, запрещающих выполнение рекурсивных операций относительно корня ФС. Уязвимость (CVE-2026-35338) вызвана тем, что в коде проверялось только точное совпадение пути с «/» и не выполнялась канонизация файлового пути. Для обхода проверки достаточно использовать путь вида «/../» или символическую ссылку на корень. Уязвимость опасна тем, что при возможности подставить свой путь в системный скрипт вызывающий команду chmod, можно добиться рекурсивного изменения прав доступа для всех файлов в ФС.
  • В утилите rm допускалась обработка любых сокращений опции «–no-preserve-root» («–n», «–no», «–no-p», «–no-pres» и т.п.) для отключения защиты от выполнение рекурсивной операции с корнем (например, можно указать «rm -rf –n /» и удалить по ошибке все данные. В GNU Coreutils подобные сокращённые опции запрещены.
  • Обход ограничений «–preserve-root» в утилите rm, запрещающих выполнение рекурсивных операций относительно корня ФС, через подстановку символической ссылки на «/».
  • Отсутствие полноценной защиты от указания каталогов, начинающихся с точки. Например, при выполнении «rm -rf .» утилита выведет ошибку, но при указании «rm -rf ./» или «rm -rf .///» молча удалит текущий каталог.
  • Ошибка в коде разбора аргументов утилиты kill позволяет отправить сигнал всем процессам в системе при указании идентификатора процесса «-1» (kill -1).

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

>>> Подробности



Проверено: cocucka ()
Ответ на: комментарий от rezedent12

Потому что произошёл бы прецедент не целевого использования средств. Рано или поздно, неизбежно. После чего ввели бы обязательное лицензирование и страхование. А правила в итоге согласований и формирования подзаконных актов составили бы такими, что только узкий круг бизнесов смог бы их выполнить. А что бы точно всё предотвратить, не лицензированную помощь котикам запретили бы.

И такое хоть раз в России было?

Очень многие дорогие автомобили на улицах, куплены в кредит. А решение их купить было принято когда стало понятно, что жильё купить не получится.

У людей в приоритете машина перед жильем? Квартира в Воркуте меньше 100 тысяч стоит, кстати.

Дорогой автомобиль в России является статусным предметом, который часто покупают в ущерб другим нуждам.

== Дорогой iPhone в Европе является статусным предметом, который часто покупают в ущерб другим нуждам.

Я когда общаюсь с теми кто водит автомобили, и когда езжу с ними, вижу что у них на дороге какая то обезьянья иерархия. Типа у него гелик, а у того номера блатные, их нужно пропустить, а того лоха можно подрезать. Он едет и всё это считывает из окружающего пространства. Это блять ему важно для принятия его водительских решений. И ладно если бы это был бы один человек, то я подумал бы что ну он долбаёб. Но это блять водительская культура. И дорогой автомобиль в ней, это не то что покупают на излишек денег. Это то что покупают для эмоционального комфорта на дороге. Это теория построенная на наблюдениях. Я не понимаю на эмоциональном уровней что у них там в головах.

И что предлагаешь с этим делать?

Что касается круглосуточных магазинов. Дабы они в таком количестве оставались выгодными, труд должен быть дешёвым. А что значит дешёвый труд? То что у людей малые зарплаты. Здесь дело даже не в абсолютных денежных суммах. А то что люди готовы в ущерб здоровью гнаться за довольно скромными деньгами. Почему готовы? Потому что живут в логике выживания.

В Европе зарплаты выше, но налоги под 50%, цены выше, жилье дороже в 10 раз.

Есть такое простое эмпирическое правило. Чем больше норма прибыли в простом бизнесе, тем беднее живёт страна, то есть большинство населения. Оно и математически объясняется через эффект рыночного мультипликатора.

Россия живет не бедно, а нормально и духовно. Чрезвычайное богатство приводит к бездуховности.

MrSugoma2

Linux / Firefox (EE)