LINUX.ORG.RU

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

 , ,


1

5

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

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

Информация о всех выявленных проблемах уже передана разработчикам 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).

>>> Источник

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от Lusine

Я мог бы докопаться до того, откуда ты взял про 90 процентов - но не буду, так уж и быть.

Вопросов у меня к тебе никаких больше нет. Я понял, что передо мной не разумный человек, а туповатый неумелый тролль. Ты ж даже фактчек не пытаешься, с тобой не интересно спорить. Буквально корм в придонном иле.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от DrRulez

СТОИМОСТЬ ВЛАДЕНИЯ в течении жизненного цикла

Помню, как же - Get The Facts и прочий FUD-скам. Что характерно - это опять же маркетинг, причём сверх-агрессивный.

А ДЕНЬГИ говорят

Они ещё и делают: там где линукс может предложить технологии, микрослоп может предложить откатик. Естественно попил побеждает примерно всегда.

без стандартизации и предсказуемости

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

накладывается отсутсвие вменяемых (и тогда и сейчас) драйверов оборудования

Ты путаешь причину и следствие. Благодаря тому что микрослоп баблом и криминальным лоббированием (буквально - у них целый ворох проигранных судов на эту тему) подмял под себя рынок, драйвера выпускают в первую очередь под мастдай и по остаточному принципу - подо всё остальное.

Вот если бы у линукс-контор было сравнимое с мелкомягкими бабло в момент дележа рынка, то сейчас бы виндузятники обсуждали по форумам через какой костыль им запустить линуксовые дрова чтобы на их днище завелось экзотическое железо.

zabbal ★★★★☆
()
Ответ на: комментарий от kaldeon

О каких конкретно операциях идёт речь?

Переключение дефолта через update-alternatives после установки\удаления пакета. Единственный дистр где можно сломать систему просто поставив\удалив DM это рач - из тех что я пробовал во всяком случае. Не удивлюсь если какая-нибудь зашкварь такой же дичью страдает учитывая как долго туда хоть какой-то пакетный менеджмент затаскивали.

zabbal ★★★★☆
()
Ответ на: комментарий от zabbal

где линукс может предложить технологии

Как одним движением мышки запретить юзерам копировать на внешние носители без заклейки дырок бумажками с печатью, эту задачу твои технологии уже решили?

В плане предсказуемости линукс ещё и лучше винды в разы

Софт десятилетней давности можно запустить на современном железе без перекомпиляции и пердолинга с виртуалками?

Lusine
()
Ответ на: комментарий от Lusine

Или какая сетевая файловая файловая система позволяет сделать так, чтобы копии интенсивно используемых файлов были физически в разных датацентрах, но для для пользователей эти файлы будут виден в едином месте в сети? Причем топология этой фс еще и автоматически публиковалась в Active Directory?

Lusine
()
Ответ на: комментарий от Lusine

liksys. А чего ты Маня мне клоунов все ставишь? Вот есть конкретная задача поставить лицензионный офис на 250 рабочих мест.

Есть лицензия на офис 2007 без ограничения числа инсталяций. Как ты думаешь будет ли работать прога 20 летней давности на вин11?

Lusine
()
Ответ на: комментарий от Lusine

Как одним движением мышки запретить юзерам копировать на внешние носители без заклейки дырок бумажками с печатью, эту задачу твои технологии уже решили?

Это никак не помешает загрузиться с подключенной флешки в Live-режиме и всё нужное скачать.

Софт десятилетней давности можно запустить на современном железе без перекомпиляции и пердолинга с виртуалками?

Да, Wine реализует WinAPI для старого софта намного лучше, чем современная винда (особенно это касается старых игр), где кучу софта уже не заводится нормально. Но и нативный софт давно в AppImage можно завернуть без пердолинга одной командой с нужным glibc, что всё будет работать даже на системах с musl.

ChocoRobo
()
Ответ на: комментарий от Lusine

Софт десятилетней давности

Это тот самый которым твоя пробабка чертила сатурн на иксах за полтора десятилетия до их появления? Иди куличики в песочнице слепи, балабол - тут взрослые общаются, им не до твоей брехни.

zabbal ★★★★☆
()
Ответ на: комментарий от ChocoRobo

Нельзя с флешки загрузиться, даже лень объяснять почему.

Wine реализует WinAPI

COM/DCOM не работает, сразу мимо.

в AppImage можно завернуть

А можно без заворачивания?

Lusine
()
Ответ на: комментарий от Radjah

Я всё же не понимаю, куда они спешат?

Может с планов на IPO стряхнули пыль и маркетинг требует срочно нагенерить инновационного позитивчика для нужного новостного фона?

zabbal ★★★★☆
()
Ответ на: комментарий от Lusine

Нет, это возможно.

Теоретик, спокойно. Мы говорим, что на практике. А на практике передовые разрабы из Индии умудрились поломать Win32-обратную совмемтимость.

Можно, если захотеть.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 1)
Ответ на: комментарий от Lusine

И как его использовать?

Кому - тебе? Никак. Форумное трепло только врать и троллить может, какой уж тут софт.

zabbal ★★★★☆
()
Ответ на: комментарий от Lusine

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

ChocoRobo
()
Ответ на: комментарий от ChocoRobo

Кто тебе его подпишет, нахрен там тогда база ключей, чтобы любой васян мог грузить со своей флешки?

Будешь разбирать корпус на глазах всего офиса и вытаскивать батарейку? Так ты секюрбут не отключишь.

Lusine
()
Ответ на: комментарий от Lusine

А как же защита инвестиций?

Это ты так свою брехню про бабку на Сатурне и иксы в ASIC называешь? :-D :-D :-D

zabbal ★★★★☆
()
Ответ на: комментарий от Lusine

Можешь не пытаться вводить новые переменные в попытках сместить фокус. Изначальный тезис твой уже зафиксирован и опровергнут. Дальнейшие твои накидывания бесполезны.

ChocoRobo
()
Ответ на: комментарий от zabbal

Нет так я называю ситуацию, когда ты купил софт за 10 лямов зеленых, а на новом железе использовать не можешь, линукс там вроде тот же, но нет.

Lusine
()
Ответ на: комментарий от ChocoRobo

Изначальный тезис был «Как одним движением мышки запретить юзерам копировать на внешние носители без заклейки дырок бумажками с печатью». Это ты начал озвучивать свои влажные фантазии про загрузку с флешки и сбросы биоса.

Lusine
()
Ответ на: комментарий от Lusine

а на новом железе использовать не можешь

Да вообще не проблема - зайди в интернет с винды95 через винмодем, скачай на ASIC в сатурн иксы потому что флешка там не грузится… блин, я чё-т в твоей фэнтезийной вселенной теряюсь: ты уже с warhammer набрехал - чего там дальше у тебя было?

zabbal ★★★★☆
()
Ответ на: комментарий от Lusine

Да, именно этот тезис был опровергнут. Что твои программные ограничения никак не помогут при физическом доступе. Ты об этом, очевидно, даже не подумал. Но когда тебя ткнули носом, стал судорожно пытаться вводить новые переменные, словно двигая ворота после забитого мяча. Далее по кругу переливать из пустого в порожнее смысла не вижу. Можешь писать «ага, слился», если этот копиум тебе нужен. У меня всё.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 2)
Ответ на: комментарий от Manhunt

идиотское приравнивание memory safety к невозможности поломать код

Да ты ж упоротый. Как привязал мои слова к memory safety? Это свойство сильной статической типизации, а не как в Си: то ли char, то ли float, то ли указатель, один хрен.

За fearless нейрослопинг.

Угу, конечно. До 22-го года у сишников от раста не пригорало, а только с релизом чатгпт начало.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

До 22-го года

Ржавчина оставалась новомодной подделкой, которую мало кто палочкой тыкал. Сейчас это по прежнему мемный форс-хайп, но уже другой левел, да. Теперь уже явно есть причины не любить этот мутный проект.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 1)
Ответ на: комментарий от Radjah

Типа на хайпе заскочить в первый вагон что ли, или это такой своеобразный способ ускорить написание реализации coreutils на rust

Ну да

cobold ★★★★★
()
Ответ на: комментарий от LightDiver

базовые косяки сишки ... косяки самого языка

- это вы ещё макроассемблеры не видели.

*sarcasm*

Shadow ★★★★★
()
Ответ на: комментарий от ChocoRobo

которую мало кто палочкой тыкал

Это в твоём инфопузыре. Те кто не настолько слоупок и потыкали, и написать код попробовали. Кому понравилось - стали вовсю использовать.

Теперь уже явно есть причины не любить

Само собой - как только очередные мемасики залетели, стадо пошло хейтить куда сказали, мыча и капая слюной.

zabbal ★★★★☆
()
Ответ на: комментарий от Radjah

Смотри какой фокус провернут:

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

Минусов то как таковых нет

cobold ★★★★★
()
Ответ на: комментарий от zabbal

Единственный дистр где можно сломать систему просто поставив\удалив DM это рач

Но ведь это бред. pacman -S gnome и последующий pacman -Rs gnome ничего не сломает, гарантированнно.

update-alternatives нужен для переключения между несколькими версиями одной программы. В Арче нет этой проблемы, потому что такой возможности в принципе нет (кроме частных случаев вроде питона или жабы).

kaldeon ★★
()
Ответ на: комментарий от cobold

Ну и вышло, что ложечки нашлись, но осадочек-то остался. Теперь этот косяк надолго запомнился. Каноникал, впрочем, как обычно. Что ни инициатива, то в итоге фейлом кончается.

ChocoRobo
()
Последнее исправление: ChocoRobo (всего исправлений: 1)
Ответ на: комментарий от Lusine

А винда без заворачивания умеет? Winsxs это что?

cobold ★★★★★
()
Ответ на: комментарий от ChocoRobo

Да ну. Интернет через месяц забудет. Более того, думаю что после фиксов они заново накатят растовые корутилсы

cobold ★★★★★
()
Ответ на: комментарий от kaldeon

update-alternatives нужен для переключения между несколькими версиями одной программы.

Но ведь это бред.

update-alternatives нужен для переключения между разными программами, реализующими одну и ту же функциональность - например DM.

И именно из-за отсутствия update-alternatives в раче установка и удаление DM напрочь ломает логин потому что не восстанавливает прежний DM в качестве дефолта.

потому что такой возможности в принципе нет

Вот это да - отсутствие возможностей это в целом ключевая фишка рача.

zabbal ★★★★☆
()
Ответ на: комментарий от cobold

думаю что после фиксов они заново накатят растовые корутилсы

В Ubuntu 26.10 разработчики намерены полностью перейти на rust-coreutils.

Ты новость-то читал?

zabbal ★★★★☆
()
Ответ на: комментарий от cobold

Чо? C++ builder существует уже лет 25 как

C++ builder — это именно что порт VCL на C++ и компилятор. А то, что Хейлсберг сделал в C# — это продолжение идей Делфи. В частности, объектная модель с свойствами, явными директивами для методов, корневым классом и т.п. Я когда смотрел что из себя C# представляет, поражался, сколько же у них общего

Alden ★★★★★
()
Последнее исправление: Alden (всего исправлений: 1)
Ответ на: комментарий от zabbal

Ага, я понял, после установки GDM пользователь всё ещё будет видеть консоль.

Это не сломанная система, а скорее недообслуженная.

отсутствие возможностей это в целом ключевая фишка рача

Да, неиронично.

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

kaldeon ★★
()
Ответ на: комментарий от firkax

Си отфильтровывает идиотов, их поделки сегфолтятся при запуске, идиоты расстраиваются и уходят

Кто тогда написал все эти популярные проекты типа openssl, браузеров, ядер и прочих апачей, в которых CVE пачками каждый день находят?

unC0Rr ★★★★★
()
Ответ на: комментарий от kaldeon

Ага, я понял

Нет. Ты поставил рач с GDM. Потом поставил SDDM. Тебе не понравилось и ты его снёс. Что происходит в любом нормальном линуксе? Аналог update-alternatives вернёт тебе GDM. Что происходит в раче:

сломанная система

Несколько версий одной программы — это дорогая фича

Она настолько «дорогая» что есть в любом нормальном дистре линукса уже не первое десятилетие. Возможно есть ещё какая-то маргинальщина помимо рача где настолько базовых вещей нет, но среди мейнстримных мне такое не встречалось.

после установки GDM пользователь всё ещё будет видеть консоль

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

zabbal ★★★★☆
()
Последнее исправление: zabbal (всего исправлений: 1)
Ответ на: комментарий от liksys

Еще раз, твоя же цитата: первый интернет был через винмодемы которые работали в винде95 и не работали в линуксе.

Я понимаю о чем он пишет. Про первый домашний интернет. Курьеры и зухели лежат в гараже, ждут постапокалипсиса, и подтверждаю, это было очень дорого. Винмодем у меня был на «system board» на чипсете i810. Сразу все в одном: два места под ЦПУ, видеокарта-интеграшка, звуковая карта ямаха, винмодем. $80 в розницу. И к моменту покупки этой железки на доступных мне CD с линуксом не было не поддержки той видеокарты, и поддержки того винмодема. И нюки вин98 в веб-чатах как развлечение. Со временем конечно появился какой-то там мандрейк, уже с работающими на i810 xfree86.

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

sarumeister
()
Последнее исправление: sarumeister (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Одно дело жить в тайге с топором

В тайге с топором жить хорошо... если умеешь... Вот без топора с тайге жить не очень хорошо... Даже если в тайге жить yмеешь... ;)

а другое в поселке городского типа с удобствами, водопроводом и электричеством. Очень разное «просто жить», знаешь ли.

Знаю. Жил. :)

А ещё я знаю, что вот это твоё «бла-бла-бла» - неуклюжая и довольно неудачная попытка «съехать с темы». Ну да ладно, баг и ним, с тобой... :))

А еще можно в городе с милицией и доставкой пиццы.

Можно. Живи. :)

Правда, в городе с гобеленами давно уже нет милиции, но это не важно...

Да и сопки с годами в нём становятся всё круче и круче, но это тоже в данном контексте не важно... Так что живи себе... раз можно... :) И «с милицией», и «с доставкой» этой гадости... :))

Хотя речь-то была совсем о другом...

Somebody ★★★★
()
Ответ на: комментарий от zabbal

Аналог update-alternatives вернёт тебе GDM. Что происходит в раче:

В раче произойдёт ровно то, чего ожидает пользователь: вместе с пакетом gdm будет удалён gdm.service, а значит и DM запущен не будет.

Если для вас это сломанная система, OK. Я просто думал, что речь идёт именно о программной неисправности, которые непредсказуемы.

Она настолько «дорогая» что есть в любом нормальном дистре линукса уже не первое десятилетие.

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

должны вручную настраивать всё то, что в любом другом дистре появляется автоматом

Ну вот установим мы одновременно sddm и gdm, какой из них запустится при следующем включении?

Арч исключает магию, но не исключает автоматизацию. Скажем, initramfs собирается автоматически.

Но более общий поинт в том, что да, он не накатывает «самую полезную» конфигурацию, потому что определение полезности у всех пользователей разное. Кому-то нужно одно, кому-то другое, и каждый сам знает как это получить без помощи дистрибутива.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от Somebody

А что ж не живут в тайге с топором массово, а все тянутся в города? Да желательно в крупные? Может не так и хорошо?

LightDiver ★★★★★
()
Ответ на: комментарий от Lusine

плавали

Припоминаю, что именно «плавает»... ;))

Somebody ★★★★
()
Ответ на: комментарий от idoffront

10 страниц спора, ребят, а стоило лишь парочке людей сказать «хочу раст».

Не хочу Rust... :)

И??.. ;) :))

Somebody ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.