LINUX.ORG.RU

CVE-2025-68260: Первая уязвимость в коде Linux на Rust

 , ,


0

4

Грег Кроа-Хартман анонсировал первую уязвимость с присвоенным CVE в части кода на Rust в Mainline-ядре.

Уязвимость обнаружена в коде подсистемы Binder, переписанном на Rust. Возможное состояние гонки в unsafe блоке может повредить указатели связанного списка и привести к краху ядра.

Уязвимость воспроизводится в ядре 6.18 при использовании нового, переписанного на Rust драйвера Binder.

>>> Оригинал новости на Phoronix

★★★★★

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

Это буквально оно. В древние времена тоже было очень много воя по поводу языков высокого (на тот момент) уровня примерно с той же аргументацией.

Опять не в ту лужу и не то сравниваешь…

Управление памятью по понятным паттернам - вещь, которая может быть сделана машиной без всякой недетерминированной эвристики.

вообще ни разу… (работа с прерываниями тому свидетель… база же…)

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

у меня такой же вопрос возникает к тебе… Как думаешь если литералов будет бОльше в связи с дополнительными проверками, то программа станет производительнее…???

Не оказалось.

Оказалось, собственно… (Ты б мысль озвучивал, а то дет.садом такой диалог попахивает)

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

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

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 3)
Ответ на: комментарий от gns

Race condition — это не проблема языка. Это проблема взаимодействия потоков управления во времени.

Я просто на расте не пишу, но на Си - эти моменты программист контролировать может…

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

Опять не в ту лужу и не то сравниваешь…

Да нет, всё в порядке. Ты просто не подумал.

вообще ни разу… (работа с прерываниями тому свидетель… база же…)

Это частный случай, для которого существует unsafe. Для бизнес-логики, которая является подавляющим большинством написанного кода, работа с памятью легко автоматизируется.

у меня такой же вопрос возникает к тебе…

Мой гитхаб в профиле. Итак, еще раз: какое отношение линтеры имеют к производительности?

Оказалось, собственно…

Нет, не оказалось. Сбой в unsafe-блоке, а не в самом расте. Это логическая ошибка, от которой ни один язык на защищает.

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

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

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

Можешь разобраться в причинах того, зачем там существует unsafe. Разрешаю. Дерзай. Изучишь - расскажешь.

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

Ты это буквально комментируешь в новости про устранение дыры в безопасности ядра, LOL.

Я комментирую в новости про серебряную пулю rust, которая, на поверку, оказалась пулей из известной дурнопахнущей субстанции. Да и «знакомые с безопасностью» никаких дыр в ядре не патчат :)

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

Т.е. «мы можем, но неофициально и давайте пожалуйста тихо». А те, кто на Хабре про это трубит на весь мир - это лохи, которые палят контору? Мне это уже напоминает произведение «большая глина» или как там оно называлось - такое вот нагромождение художественных образов.

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

Я комментирую в новости про серебряную пулю rust

А разве кто-то кроме раст-хейтеров такую чушь нёс? Где?

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

Т.е. «мы можем, но неофициально и давайте пожалуйста тихо».

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

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

«guarantee memory-safety and thread-safety» , объясни мне, как thread safety ортогональна гонкам теперь. С каждой новой репликой - новый кусочек глины :)

Ладно, я ушёл. Разбирайтесь сами в вашем художественном творчестве.

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

А разве кто-то кроме раст-хейтеров такую чушь нёс? Где?

Нет никаких раст-хейтеров, есть компетентные программисты, пишущие на C и все остальные. Хейтеров не видел.

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

Ну может, но только головой. Предполагая, что доступ к некой структуре данных из одного потока должен произойти не раньше, чем эту структуру данных заполнит или изменит другой поток, можно как-то обвесить структуру атомарными счетчиками, мутексами и т.п. Я тоже на расте не пишу, но покопал что-то, так в unsafe-блоке раст от Си отличается только синтаксисом. А подходы — те же. Оба языка императивные, просто считай что в расте все ссылки обвешаны всякими умными Uniq-указателями по умолчанию.

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

thread-safety

Это широкое понятие, если ты не знал. Доступ к объектам в памяти - это тоже thread-safety.

Впрочем, конечно, ты не знал. Теперь можешь поискать на официальном сайте список того, от чего конкретно раст защищает, и прекратить уже пороть чушь.

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

Ну это плохо применимо для верификации отсутствия гонок. В логических моделях фактор времени плохо учитывается, если учитывается вообще.

С помощью логики разделения это делается, на https://iris-project.org/ полно работ на тему.
Растовая система типов похожа на игрушечную версию логики разделения. Простые случаи покрывает, но для случаев посложнее требуется ансейф.
https://arxiv.org/pdf/2403.15122 пользуется этим, кстати, требуя логику разделения только для верификации ансейф частей.

Кстати, для раста есть что-то похожее — https://frama-c.com/html/acsl.html

Creusot, Verifast.

quantum-troll ★★★★★
()

Си приучает думать. Потому чел быстро заметил косяк. Раст отучает думать. Вот и серьезный косяк всплыл.

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

Я не растаман, и вряд ли им стану :) Я свой матрас травы уже выкурил. :)

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

Си приучает думать.

Думать это ж сложно очень. Полагаю раст создан для написания кода ИИ.

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

Вся суть руста.

Все правильно, в си у тебя все один большой unsafe блок, а тут ограниченные куски кода.

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

Да нет, всё в порядке. Ты просто не подумал.

Ты в факты умеешь или только мнениями оперируешь..?

Это частный случай, для которого существует unsafe. Для бизнес-логики, которая является подавляющим большинством написанного кода, работа с памятью легко автоматизируется.

Тех «частных случаев» сильно больше чем ты себе представляешь… И unsafe - это расписка в неспособности соответствовать своей же парадигме «безопасности»…

Мой гитхаб в профиле.

Глянул профиль, там чисто твоего: питон, да шелл с html, остальное форки, которые можно было б и самому осилить, не прибегая к помощи (если за скилловость говорить) - не впечатлило, но похвально, что есть…

Итак, еще раз: какое отношение линтеры имеют к производительности?

Тебе дан ответ, ты читать разучился…? С чем ты хочешь поспорить в моем ответе…? (особенно странно это в свете того, что у тебя же на гите есть вроде железки в проектах - или ты «пользоваться», но сам «не писать»/«не разбираться»?)

Нет, не оказалось. Сбой в unsafe-блоке, а не в самом расте. Это логическая ошибка, от которой ни один язык на защищает.

удобненько, unsafe виноват получается, а его растерам злые Си-шники видать заслали и заставили пользоваться, и, самое важное, unsafe - это не раст, так…?

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

компетентные программисты, пишущие на C и все остальные

Классификатор мамкин. Борхес практически: «принадлежащих Императору, набальзамированных, молочных поросят…».

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

А чего, на С можно быдлокодить не приходя в сознание, но результат немного предсказуем? И поэтому понадобился раст? Но тоже не оправдал ожидания. Что же делать? Ну не начать же думать в конце концов :)

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

на С можно быдлокодить не приходя в сознание, но результат немного предсказуем?

Да, можно. И именно поэтому Линус решил внедрять раст в ядре.

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

У тебя, что характерно, нет.

Потому что в основном проприетарщиной занимаюсь (закрытые репозитории и большинство мне не принадлежат, а сливать себе и открывать - это как-то неправильно, ибо я «продал» это как бы, да и есть интересные решения, которыми не хочу делиться с «незнайками и непонимайками» - пусть ИИ спрашивают…), а пару форков, которые я на посмотреть залил - вряд ли кому-то интересны… Очевидно же…

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

Да, можно. И именно поэтому Линус решил внедрять раст в ядре.

ИИ:

Решение о внедрении Rust в ядро Linux было принято при активном участии создателя Linux Линуса Торвальдса. После долгих обсуждений и первоначального сопротивления, Торвальдс признал преимущества Rust, особенно в части безопасности памяти, и подтвердил продолжение интеграции, что сделало его использование в ядре официальной частью разработки, а не просто экспериментом, несмотря на споры в сообществе. Ключевую роль также сыграл ведущий разработчик Грег Кроа-Хартман, который продвигал использование Rust для устранения типичных ошибок. 

Если ИИ опять не нафантазировал, то Торвальдс Согласился, его Убедили, есть даже предположение, что недавние события, связанные с увольнением российских разработчиков, и т.п. сыграли не малую роль… Торвальдс в свое время даже плюсы хейтил, если что… Также Торвальдсу «побарабану» будет линукс корпоративным/проприетарным или свободным, для него это просто интересный проект (если смотреть его выступления, то такое мнение складывается)

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

Ты в факты умеешь или только мнениями оперируешь..?

Факты были даны, ты их проигнорировал.

Тех «частных случаев» сильно больше чем ты себе представляешь

То, что их много, не отменяет того, что проблем с памятью еще больше.

остальное форки

Ты ж банально врешь, клоун :)

Тебе дан ответ, ты читать разучился…?

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

Всем вполне очевидно, кто из нас двоих не умеет читать.

удобненько, unsafe виноват получается

Виноват код внутри unsafe. Перечитывай выше то, что я писал о бизнес-логике другим юзерам.

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

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

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

Торвальдс Согласился, его Убедили, есть даже предположение

Что только шизофреники не придумают, лишь бы не признавать ряд простых фактов:

  • Раст безопаснее Си по части работы с памятью.

  • Старички-сишники потихоньку отъезжают на пенсию.

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

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

Если не вливать молодую кровь в проект - он постепенно загнется. Особенно когда всякая фуксия и прочая новоиспеченная номинально-свободная проприетарщина на подходе. Так что всё правильно сделал.

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

Вот да, тем более. Даже банально с точки зрения конкуренции есть смысл перехантить к себе растовиков, раз они настолько активные.

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

Факты были даны, ты их проигнорировал.

Факт пока один: ты сравнил абстрактное именование команд с переписыванием логики работы программы «на усмотрение машины»…

Ты ж банально врешь, клоун :)

У бати своего спроси, когда он из цирка тебя забирать будет, а по приходу глянь в репозитории «свои», там форк на форке, даже ридми не троганны руками,

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

хах, иди в подворотню сходи, там твои друзья пузырь открыли уже…

Всем вполне очевидно, кто из нас двоих не умеет читать.

Согласен.

Виноват код внутри unsafe. Перечитывай выше то, что я писал о бизнес-логике другим юзерам.

бизнес-логика не требует от тебя unsafe… Трезвей короче..

Более можешь не отвечать, ты ушел в игнор, не марай клаву, пузырь с корешами у тебя стынет…

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

… работа должна быть переложена на него… компилятор в состоянии закрыть большую часть проблем…

Как бы верно, но немного спорно. Машина должна работать, а человек всё-таки должен думать.

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

Очевидно же…

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

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

Во-первых, не только; во-вторых, ты всё еще не ответил на вопрос - каким образом это влияет на производительность.

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

Да, можно. И именно поэтому Линус решил внедрять раст в ядре.

Так может проще на мороз тех кто так могут практикуют?

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

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

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

Машина должна работать, а человек всё-таки должен думать.

Человек должен выдумывать алгоритм. А его имплементацию на конкретной вычислительной платформе должна полностью автоматически генерировать машина. Мы к этому ещё придём.

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

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

Да что вы говорите… Ощущаю безумие юношеского максимализма :)

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

Так некому будет линукс писать. На один этот обсуждаемый CVE пришлось 159 в сишном коде в тот же самый день.

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

Факт пока один: ты сравнил абстрактное именование команд с переписыванием логики работы программы «на усмотрение машины»…

И ты снова врёшь. Сравнение было буквально с путем развития компиляторов и интерпретаторов.

У бати своего спроси

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

хах, иди в подворотню сходи, там твои друзья пузырь открыли уже…

Кто пустил быдло на лор?

бизнес-логика не требует от тебя unsafe

Конечно, не требует. Я буквально это писал.

Трезвей короче

Ах, эти милые проекции.

Более можешь не отвечать, ты ушел в игнор

Бгг. Поймали на вранье, сгорел - спрятался за игнором. Эталонный клоун.

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

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

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

Доказательства не заставят себя долго ждать, следите за новостями, как говорится. А так это азы управления проектами.

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