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 ()

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

Мне где-то кто-то давно затирал, что в Rust такого быть не может.

MrSugoma2

Linux / Firefox (FI)
Ответ на: комментарий от MrSugoma2

Мне где-то кто-то давно затирал, что в Rust такого быть не может.

Так это не косяк языка.

TOCTOU (Time-Of-Check-To-Time-Of-Use)

Сраный ЧатГПТ в деталях объясняет в чём проблема и как это фиксить, буквально парой строчек.

Не фанат нейродрочева, но по-моему, это как раз тот случай, когда инструменты автоматизации (в том числе нейронки) могли бы найти и помочь пофиксить большинство проблем, если бы разрабы нашли выход из vim и воспользовались современными средствами разработки.

kevlarbeaver
★★
Windows / Chrome (DE)
Ответ на: комментарий от rezedent12

вот я тоже думал что с моим образованием надо стать программистом или электронщиком. Но подумал подумал хорошо уже в процессе натурализации и решил не связываться с программированием. Хотя уважаю тех кто это умеет.
У нас в конторе всего один айтишники этакое забитое работой существо и мониторов перед ним целых пять. Многостаночник наверное.

Holger
★★
Linux / Chrome (DK)
Ответ на: комментарий от MrSugoma2

О, это просто, лови инструкцию: ложишься спиной вниз в ванну - это, типа, яма, ссышь строго вверх, это, типа, тебя чествуют сослуживцы.

Anoxemian
★★★★
Anonymous / Unknown (EE)
Ответ на: комментарий от MrSugoma2

Я на реальном фронте СВО воевать не могу, но я воюю на информационном фронте СВО.


Чего ты добиваешься своей борьбой? Каким ты видишь её результат?

rezedent12
★★★★★★★
Linux / Chrome (RU)
Ответ на: комментарий от rezedent12
  1. Враги России горят.
  2. Я не даю модераторам спать спокойно.
  3. Приятно, когда хохлы отвечают на мои радости о том, что по очередному многоэтажному свинарнику прилетела ракета/дрон/etc.
MrSugoma2

Linux / Firefox (SE)
Ответ на: комментарий от MrSugoma2

Враги России горят.

Спорное достижение. Вполне возможно что у них были бы другие поводы сгореть. А ты всего лишь перетянул причину на себя.

Я не даю модераторам спать спокойно.

Если модератор на зарплате, то ему пофиг. Если модератор идейный, то он сам выбрал не спать.

Приятно, когда хохлы отвечают на мои радости о том, что по очередному многоэтажному свинарнику прилетела ракета/дрон/etc.

Во всём этом я вижу лишь чесание недоразвитого эго. Для того что бы получать удовольствие таким примитивным способом, нужно иметь комплекс неполноценности или ICQ ниже 80. Ты случаем не любитель залипать в тиктоке на чат-рулетку с такими же как ты воинами?

rezedent12
★★★★★★★
Linux / Chrome (NL)
Ответ на: комментарий от rezedent12

Во всём этом я вижу лишь чесание недоразвитого эго. Для того что бы получать удовольствие таким примитивным способом, нужно иметь комплекс неполноценности или ICQ ниже 80.

Обоснуй!

Ты случаем не любитель залипать в тиктоке на чат-рулетку с такими же как ты воинами?

Нет.

MrSugoma2

Linux / Firefox (SE)
Ответ на: комментарий от MrSugoma2

Во всём этом я вижу лишь чесание недоразвитого эго. Для того что бы получать удовольствие таким примитивным способом, нужно иметь комплекс неполноценности или ICQ ниже 80.

Обоснуй!

Если у человека IQ больше 80, то зачем ему это? Хотя да, я совершаю глупость задавая такой вопрос, тому у кого подозреваю низкий IQ.

Это база психологии. Если человек испытывает постоянную внутреннюю потребность что то доказывать кому то, то значит он сам в этом как то сомневается.

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

Вот я:

  1. Сформулировал определение человечности через эксклюзивность экологической ниши человека. (Способность к творческому преобразованию природы.)
  2. Создал классификацию векторов интеллекта. (субъект-субъектный, субъект-объектный, объект-объектный и другие.)
  3. Сейчас конструирую идеологию «левой базы».

А что ты сделал, для патриотических идей? Чем ты отличаешься от любого другого нацепившего на себя Z символику?

rezedent12
★★★★★★★
Linux / Chrome (RU)
Ответ на: комментарий от rezedent12

Если человек испытывает постоянную внутреннюю потребность что то доказывать кому то, то значит он сам в этом как то сомневается.

Так и запишем, исходя из соседнего топика: ты сомневаешься в атеизме.

Всё что делаешь ты - тупо троллишь

Нет, я хоть как-то доношу свои мысли в англоязычный Интернет. Рано или поздно какого-то иностранца мои аргументы могут заставить усомниться в своей позиции по поводу России и СВО.

MrSugoma2

Linux / Firefox (FI)
Ответ на: комментарий от MrSugoma2

Если человек испытывает постоянную внутреннюю потребность что то доказывать кому то, то значит он сам в этом как то сомневается.

Так и запишем, исходя из соседнего топика: ты сомневаешься в атеизме.

И это правда. Иначе это было бы верой.

Всё что делаешь ты - тупо троллишь

Нет, я хоть как-то доношу свои мысли в англоязычный Интернет. Рано или поздно какого-то иностранца мои аргументы могут заставить усомниться в своей позиции по поводу России и СВО.

А ты разбираешься в том как эти самые «англоязычные» воспринимают реальность? В том как они мыслят? Как воспринимают Россию на эмоциональном уровне? И почему? Если ты этого не понимаешь, хотя бы жопной чуйкой, то твои аргументы являются для них просто странным шумом, потому что никак в картину мира не вставляются.

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

rezedent12
★★★★★★★
Linux / Chrome (CH)
Ответ на: комментарий от rezedent12

Как воспринимают Россию на эмоциональном уровне?

Многие считают ее нищей страной, что я опровергаю.

Получилось же продать европейцам, Навального как лидера российской оппозиции. А либеральную тусовочку продать как реальную оппозицию.

Почему продать? Они их сами создали изначально и сами поддерживают.

MrSugoma2

Linux / Firefox (DK)
Ответ на: комментарий от MrSugoma2

Как воспринимают Россию на эмоциональном уровне?

Многие считают ее нищей страной, что я опровергаю.

Сначала хотел спросить «Доказываешь что Россия не нищая, а бедная?» Но лучше спрошу другое. Как ты строишь свою аргументацию?

Получилось же продать европейцам, Навального как лидера российской оппозиции. А либеральную тусовочку продать как реальную оппозицию.

Почему продать? Они их сами создали изначально и сами поддерживают.

Если бы создавали они, то была гораздо более скучная херня.

rezedent12
★★★★★★★
Linux / Chrome (CH)
Ответ на: комментарий от rezedent12

Как ты строишь свою аргументацию?

Рассказываю людям о реальном богатстве населения России, привожу публичную статистику и рейтинги городов. В ответ на низкие в долларах зарплаты привожу местные цены и крайне низкие по сравнению с Европой налоги. Привожу я и великие российские культурно-технологические достижения, например, значительный объем кода ядра Linux, CachyOS, ALT Linux, ВКонтакте, Яндекс, coproxy, Nocord, RAC.

Если бы создавали они, то была гораздо более скучная херня.

Так что было бы?

MrSugoma2

Linux / Firefox (DK)