В модуле ksmbd, предлагающем встроенную в ядро Linux реализацию файлового сервера на базе протокола SMB, выявлены две уязвимости, которые позволяют удалённо без прохождения аутентификации добиться выполнения своего кода с правами ядра или определить содержимое памяти ядра на системах с активированным модулем ksmbd. Проблемы проявляются начиная с ядра 5.15, в состав которого был принят модуль ksmbd. Уязвимости устранены в обновлениях ядра 6.7.2, 6.6.14, 6.1.75 и 5.15.145. Проследить за исправлением в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60668
Кто вообще додумался засунуть ЭТО в ядро?..
Не на паскале же ядро писать /s
Зачем пихать семейство протоколов SMBx в ядро, кривое by design?
ядро, кривое by design
А разве нет?
Или то что любой драйвер, написанный погромистом на пике балмера после пары недель жесткого кранча, может получить доступ к чему угодно в системе - это типа норм?
Но и Винде, FreeBSD драйвер тоже может получить доступ к чему угодно. Это неизбежность, когда дрйверы работают в одном адресном пространстве с остальными частями ядра.
Только в винде WHQL, а в BSD модули.
Не панацея, но лучше чем ничего.
> Только в винде WHQL,Судя по тому как это все работает и какое качество дров с его подписями - оно создано для обвеса подписями и локдаунов а не для чьего-то там блага.
> а в BSD модули.
В линухе тоже. И чего?
> Не панацея, но лучше чем ничего.
Оно и заметно - как нтфс сплошняком от винтукея до десятки в бсоды летает. Майкрософт на глупости уровня сабжа внимание не обращает.
А мужики- то не знают.Попробуйте пользоваться НТФС нормально, а не как привыкли на линухах
> А мужики- то не знают. Попробуйте пользоваться НТФС нормально, а не как привыкли на линухахНормально это как? Это у хомячков с битой оперативкой например образуется. И потом вообще в винде не читаемо - ибо ее выносит на попытке монтирования этого. И такая ерунда с винтукея до десятки включительно.
За столько лет индусы так и не смогли починить крахи драйвера от кривых структур. А в линухе между прочим ничего не вылетает, что с модулем NTFS3, и уж тем более с FUSE версией, так что можно как раз и прочитать неудачникам их файло. Может и не прочтется, из-за битых структур, но - как правило почти все. А в винде, вот, бсод при монтировании и scandisk который проблем не видит. Отличное комбо. Так эн знакомых хомячков и познакомились с моими скиллами датарекавери.
>[оверквотинг удален]
> попытке монтирования этого. И такая ерунда с винтукея до десятки включительно.
> За столько лет индусы так и не смогли починить крахи драйвера от
> кривых структур. А в линухе между прочим ничего не вылетает, что
> с модулем NTFS3, и уж тем более с FUSE версией, так
> что можно как раз и прочитать неудачникам их файло. Может и
> не прочтется, из-за битых структур, но - как правило почти все.
> А в винде, вот, бсод при монтировании и scandisk который проблем
> не видит. Отличное комбо. Так эн знакомых хомячков и познакомились с
> моими скиллами датарекавери.
> Это у хомячков с битой оперативкой например образуетсяНо виновата во всём НТФС
> ее выносит на попытке монтирования этого
Драйвер в пространстве ведра выкидывает исключение. Какое- то неожиданное поведение?
> индусы так и не смогли починить крахи драйвера от кривых структур.
Есть dirty flag, который обрабатывается при загрузке и начинается исправление.
> А в линухе между прочим ничего не вылетает
Ну попробуйте загрузиться с кривых структур ext4, чо. Посмотрим, как оно.
> что с модулем NTFS3, и уж тем более с FUSE
Подкинь диск не системным к другой машине или загрузись с rescue cd. И исправляй.
Пытаться работать с диска, который системный, с кривыми структурами, в режиме RW. Ну выздоравливайте, чтоли.> можно как раз и прочитать неудачникам их файло
Если человек не идиот, то прочитать его он сможет больше чем одним способом.
> А в винде, вот, бсод при монтировании и scandisk который проблем не видит
Попробуйте chkdsk
> Так эн знакомых хомячков и познакомились с моими скиллами датарекавери.
Как же им повезло, что им не пришлось знакомиться с разваливающимися ext4 или драйверами на вайфай в линуксе. А примонтировать диск в линух, это, конечно, запредельный скилл. Жаль, не каждый может так в наше время.
Неудачно сформулировал предложение, прошу прощения. Лучше так. Зачем пихать семейство протоколов SMBx, которые кривые by design, в ядро?
> ядро, кривое by designДа хренли - пользуйтесь прямым by design minix. Вон вам его в ME понапихали, кушайте не обляпайтесь.
> Зачем пихать семейство протоколов SMBx в ядро, кривое by design?Ну дык - от главного Платинового Спонсора и Просто Лудьшего Друга Опенсорса (да, все с Заглавных Буков) жыж!
Не запихнешь - те самые, которые щедро аж 2.9% от спонсорских денег на разработку ядра отстегивают, ругать (и грозить твоей "оптимизацией") будут!
> Ну дык - от главного Платинового Спонсора и Просто Лудьшего Друга Опенсорса
> (да, все с Заглавных Буков) жыж!Вон ту штуку так то samsung продвигал. Это про них такое? Им оно надо для эмбедовки, там перфоманс важен. В телеке или роутере проц дохлый а качать 4k хочется. И там 1 замордованый Jeon и греб на 3 галеры - f2fs, ksmbd, exfat. А может и еще что. Если на вас 3-4 проекта подвесить - вы и так не напишете.
>f2fsЭто который до сих пор не умеет после umount освобождать девайсы, если что.
Нужен поимённый список всех этих корпотехнологий, чтобы неповадно было даже пробовать - всё равно на не предусмотренных хозяином юзкейсах оно будет разваливаться с треском.
> Это который до сих пор не умеет после umount освобождать девайсы, если что.
> Нужен поимённый список всех этих корпотехнологий, чтобы неповадно было даже пробовать -
> всё равно на не предусмотренных хозяином юзкейсах оно будет разваливаться с
> треском.Ну вот в этом случае f2fs, exfat, ksmbd. И вроде еще куда-то гражданин комитил. Но вообще все что исходит от самсунга и корейцев, они на самом деле рабовладельцы похлеще китайцев даже - и там закнутованые до изнеможения рабы выгружают код походу не приходя в сознание. Результат немного (не)предсказуем.
Представляете, оказывается, если дочерта здоровых проектов на 1 кодера развесить - он тонет и пускает пузыри.
Для патчинга и тестирования нужно комунити опенсурсное. Осталось только придумать, как к этому прикрутить кнуты и всё поедет
Почему эти 2.9% дают злые корпорации, а не комментаторы опеннета- вопрос риторический
NFS не смущает.
Как и куча других дыр. А тут сразу.
Никогда такого не было и опять.
NFS, кстати, проще и прямее. Вот его бы лучше, выше упомянутому, Гнусмасу в их телеках и использовать.
> NFS, кстати, проще и прямее.да как-то нет
> NFS, кстати, проще и прямееБывает ложь, наглая ложь, статистика и комменты на опеннете.
> комменты на опеннетеНе ложь, а научная работа опеннетного комментатора!
Смешно, да. И про прямизну nfs, и про использовать в теликах... Телик, если что, цепляется к тому, что есть у типового пользака, а nfs там - ну вот 1% примерно.
> Смешно, да. И про прямизну nfs, и про использовать в теликах...про nfs тут как обычно - несут эксперты, ни разу его не использовавшие.
Ключевая беда nfs - то что его придумали когда компьютеры были большие, и он основан на complete trust удаленному концу, да и тот определялся айпишником. Все костыли и подпорки понапиханные за тридцать лет, ничего глобально не изменили.
Тем более что автором единственной более-менее работавшей концепции была sun, и, разумеется, запатентовать не забыла.Но и просто remote root'ов в линуксном было дочорта.
> Телик, если что, цепляется к тому, что есть у типового пользака, а nfs там - ну вот 1% примерно.
у остальных 99 - флэшечка или вот, мобилочка. Т.е. им вообще никакой фс не надо.
А nfs у тех же у кого smbfs - владельцев свиноложи или княпа. Но почему-то ее никто не любит настраивать и там тоже.
>> Смешно, да. И про прямизну nfs, и про использовать в теликах...
> про nfs тут как обычно - несут эксперты, ни разу его не
> использовавшие.
> Ключевая беда nfs - то что его придумали когда компьютеры были большие,
> и он основан на complete trust удаленному концу, да и тот
> определялся айпишником. Все костыли и подпорки понапиханные за тридцать лет, ничего
> глобально не изменили.Ну, из любви к истине скажу, что авторы буквы I в имени "cifs" себе сильно-сильно польстили. Вышло у них сильно-сильно лучше с т.з. "экосистемы" - но сам по себе протокол в плане безопасности тоже не фонтан.
> Тем более что автором единственной более-менее работавшей концепции была sun, и, разумеется,
> запатентовать не забыла.
> Но и просто remote root'ов в линуксном было дочорта.А еще милая привычка фризить все к чертям до полной неработоспособности в случае разрыва\нестабильности соединения от которой ажно прям в юзерспейс народ драпанул...
В общем, только nfs на теликах вот и не хватает, да. "И Асланiвъ помчiтся шляхамi тiтанiвъ"(Ц)>> Телик, если что, цепляется к тому, что есть у типового пользака, а nfs там - ну вот 1% примерно.
> у остальных 99 - флэшечка или вот, мобилочка. Т.е. им вообще никакой
> фс не надо.
> А nfs у тех же у кого smbfs - владельцев свиноложи или
> княпа. Но почему-то ее никто не любит настраивать и там тоже.Да хз. Расшаренную на "домашюю группу" или как оно там называется папку с торрентами - не раз и не два видел.
не, ну нащот инторнетов это они немного перестарались, конечно.
(впрочем, если имелось в виду что "весь интернет будет использовать, половина - даже и не зная о том" а не "в интернете будут", то не слишком ошиблись)> А еще милая привычка фризить все к чертям
это фича one true unix vfs layer. В принципе, хотя и редко и в странных обстоятельствах, бывает и с cifs, и виновата в этом не она, в протоколе что того что другого не было "а если чо не так, повиснуть нафиг".
Но таки да - те разработчики 80х могли бы вообще-то и подумать что не надо бы так в лоб реализовывать нелокальные vfs.
>Зачем пихать семейство протоколов SMBx в ядро, кривое by design?ну вот держишь ты серверы на rhel8 и в ус не дуешь, а к моменту eol глядишь и допилят (или сдохнет ишак)
Ради скорости, разумеется. И насколько я помню, там не вся реализация, только критические части.
Ты само ядро видел? Кривое by design. Нормальные ядра не спешат использовать, над ядром BSD тут принято насмехатся, над ядром XNU тут принято тоже хаха тянуть. Про QNX местные синьйор администраторы принтера в государственной конторе вообще не знают.
Пусть лицензию меняют на православную, вот тогда и будут использовать и свои вклады кодом делать.
> Пусть лицензию меняют на православную, вот тогда и будут использовать и свои
> вклады кодом делать.Так там и есть нормальная лицензия, а не гпл. Торвальдсу тоже нужно задуматся над переходом хотя бы на апач.
>> Пусть лицензию меняют на православную, вот тогда и будут использовать и свои
>> вклады кодом делать.
> Так там и есть нормальная лицензия, а не гпл. Торвальдсу тоже нужно
> задуматся над переходом хотя бы на апач.Извини, Торвальдс догадывается что после этого линуха мигом растащую по проприетарским норкам, а он оснатется у раздолбаного корыта - примерно как *bsd, очень всем нужные и полезные. Зато свободные - в том числе и от желающих ЭТО юзать, вакансий, источников дохода по этой теме и прочего ненужно. Так что это ты сам, для своих операционок плиз.
Вот оно кому-то надо тащить эту гору костылей самостоятельно. Впрочем, те кому надо - вполне себе и так могут вертеть в облачке и с тобою не делиться, GPL не противоречит.
> Вот оно кому-то надо тащить эту гору костылей самостоятельно.Соня тащит же. И накодили графический драйвер - именно для себя любимых. А этим, апстримным - во! Поэтому они у нас драйверами побираются на кривой козе через прослойки.
Для сравнения возьмем SteamDeck от ValvE. Которые - внезапно - довольно видные комитеры AMDGPU кроме всего прочего. Вот такая экосистемная разница при прочих равных.
> Впрочем, те кому надо - вполне себе и так могут вертеть в облачке и
> с тобою не делиться, GPL не противоречит.Но это накладывает немало ограничений на них самих. Раздать кастомеру бинарь без сорца - ну вот упс. А как игровую приставку в облаке - совсем уж без железки то, допустим?!
>> Вот оно кому-то надо тащить эту гору костылей самостоятельно.
> Соня тащит же. И накодили графический драйвер - именно для себя любимых.
> А этим, апстримным - во! Поэтому они у нас драйверами побираются
> на кривой козе через прослойки.Ну как бы соня тащит не "эту гору" - а вот ту кучку под свои специфические нужды - и драйвер от её контрактной железки тебе нужен... а хрен его знает, накой он тебе нужен, если честно. Соневское железо амудэ тебе все одно не продаст, а "я запустил нетбыесды на кофеварке111" последние лет 20 девочек уже не прельщает - особенно с учетом того, что кофе варить она при этом как правило перестает.
> Для сравнения возьмем SteamDeck от ValvE. Которые - внезапно - довольно видные
> комитеры AMDGPU кроме всего прочего. Вот такая экосистемная разница при прочих
> равных.Бродком, квалком, невидия - шо, помогли тебе те ляхи?
>> Впрочем, те кому надо - вполне себе и так могут вертеть в облачке и
>> с тобою не делиться, GPL не противоречит.
> Но это накладывает немало ограничений на них самих. Раздать кастомеру бинарь без
> сорца - ну вот упс. А как игровую приставку в облаке
> - совсем уж без железки то, допустим?!Да осспыдя - будто это тому же гуглу гулажек устроить хоть как-то помешало.
> и свои вклады кодом делатьчёт в голос
Знают, прекрасно знают. Не нужно зеркалить
Не включай его, когда собираешь ядро, в чём проблема? Специально же делают открытый код, чтобы ты мог исправить все уязвимости.
Я-то не включаю. Меня юзерспейсная реализация более, чем устраивает.
Не все сеньор администраторы принтера в госконторах это умеют, им нада "из каропки".
> Не все сеньор администраторы принтера в госконторах это умеют, им нада "из
> каропки".У дистров эта бойда модулем. Не грузить модуль, а для надежности и в блеклист внести может даже среднего пошиба эникей. Если он даже это не может - ок, а зачем он нужен? Пусть витуху под столами тянет.
>>> В модуле ksmbd, ..., выявлены две уязвимости,
>> Кто вообще додумался засунуть ЭТО в ядро?..
> Не на паскале же ядро писать /sАга, на самбе пусть пишут!
Логика -- отвал башки просто.
По ходу дела - все ринулись штопать дырку - и срача даже не надо никому!)...
Потому что в противном случае оно тормозит, у условный NFS никто и нигде кроме Линукса не использует, даже в Андроиде поддержки нет (например андроидная версия VideoLAN использует стороннюю библиотеку чтобы читать NFS шары).
Она работает?У меня она что не открывается никогда.
> Она работает?
> У меня она что не открывается никогда.Работает. Причем не так давно даже NFSv4 добавили (раньше только NFS3 поддерживался). Нормально работает с простым экспортом без заморочек. Можно даже на AndroidTV с шары смотреть кинцо.
Вот что-то у меня не работает. В интерфейсе подключить шару можно, но она всегда отображается как пустая (нет ни файлов, ни каталогов).
М.б., твой вендор такие политики в селинухе прописал, что шару ты подмонтировать можешь, а читать-писать - нет.
> М.б., твой вендор такие политики в селинухе прописал, что шару ты подмонтировать
> можешь, а читать-писать - нет.VideoLAN сам читает шару, ничего не монтируя, для Андроида это примерно как FTP клиент читающий каталог на FTP сервере, политики тут не причем.
>Вот что-то у меня не работает. В интерфейсе подключить шару можно, но она всегда отображается как пустая (нет ни файлов, ни каталогов).Всякий консюмерский хлам не умеет в динамические порты. В настройках nfs-сервера прибей их гвоздями. Портов там много.
> Вот что-то у меня не работает. В интерфейсе подключить шару можно, но
> она всегда отображается как пустая (нет ни файлов, ни каталогов).Тупой вопрос, конечно, но монтирование на другом ПК проверяли? Ну чтобы исключить неправильно настроенную шару.
До кучи - VideoLAN не любит шары по ipv6 и требует опции insecure (потому что videolan открывает соединение с высокого порта).
>Кто вообще додумался засунуть ЭТО в ядро?..Micro$oft. В винде SMB именно в ядре, оттуда же WannaCry. А Linux всего-лишь повторяет за виндой как попугай.
Обычно наоборот это стиль M$ - скопирнуть у других и растиражировать быстро, хоть и некачественно.
Это засунули в ядро, потому что только там оно и может быть. В Windows оно в ядре и в Linux должно быть в ядре исходя из того что это и как оно работает.Засунули это по заказу клиентов MS и Azure ея, которые хотят пользоваться Linux и быстро передавать данные.
Просто попробуйте сделать всё что делает SMB3 средствами NFSv4 в Linux или DRBD или NVMe-oF, а я на вас посмотрю.Вы просто не понимаете, какой срач в блочной подсистеме и сетевом стеке Linux. Если людям нужен SR-IOV и RDMA, то от Linux проще избавиться.
ksmbd - это очередная попытка избавиться от проблемы, когда "third party SMB implementation" не поддерживает функцию "нужное вставить".Уж лучше так, чем всё что лебедь (DRBD), рак (NFSv4) и щука (NVMe-oF), которые никак не могут построить нормальный storage-кластер.
>[оверквотинг удален]
> Linux и быстро передавать данные.
> Просто попробуйте сделать всё что делает SMB3 средствами NFSv4 в Linux или
> DRBD или NVMe-oF, а я на вас посмотрю.
> Вы просто не понимаете, какой срач в блочной подсистеме и сетевом стеке
> Linux. Если людям нужен SR-IOV и RDMA, то от Linux проще
> избавиться.
> ksmbd - это очередная попытка избавиться от проблемы, когда "third party SMB
> implementation" не поддерживает функцию "нужное вставить".
> Уж лучше так, чем всё что лебедь (DRBD), рак (NFSv4) и щука
> (NVMe-oF), которые никак не могут построить нормальный storage-кластер.Стоит ли мне напомнить вам что NFS 4.0 вышла в 2000, 4.1 в 2010, а 4.2 в 2016-ом?
> Стоит ли мне напомнить вам что NFS 4.0 вышла в 2000, 4.1 в 2010, а 4.2 в 2016-ом?Стоит ли мне напомнить вам что SMB 2.0 вышел в 2006, 3.0 в 2012, а 3.1 в 2016-ом?
И это важно, потому что... почему?Я ведь вполне серьезно говорю. Вот проприетарные решения по NFS:
https://vastdata.com/blog/meet-your-need-for-speed-with-nfs
И есть еще NetApp ONTAP и прочий Dell EMC VNXИ что? Где это всё в Linux чтобы было доведенным до хоть какого-то ума. Так-то pNFS - как раз NFS 4.1.
Я пишу про 2 проблемы:
1. Связка NFS+DRBD+NVMe-oF - это конч. Её целиком заменяет SMB и кластеризовать его можно, и Multichannel работает из коробки. Хотите Infiniband/FC для NVMe подачи дисков в этот кластер, хотите локально суйте и делайте S2D.
2. Даже если забыть про SMB, то конкретно NFS в Linux поддерживается из рук вон плохо, лучше FreeBSD поставить.
Про Ceph и Ganesha мне даже не вспоминайте даже. Производительности хочется, а не это вот...
Напоминаю удивлённым людям ("кто это в ядро засунул?"), что монолитное ядро всегда тяготеет к запихиванию в него всего чего можно. Так было и будет. Для ядра такого типа это эффективнее.Ну а тип ошибок уже вызывает зевоту, удивление и негодование давно прошли
Я писал для микроядра (Plan9), и не впечатлился. Проблема не в монолитности, а в переключении контекста. А переключения контекста никак не избежать, потому что нужна изоляция процессов.
Проблема в том, что план9 как бы не микроядро.
>Напоминаю удивлённым людямНапомни лучше себе, что ядро не монолитное, а модульное, и сабжевая байда тоже отключается. Но пихать ее в ядро (в любом виде) все равно было безрассудно.
> Напомни лучше себе, что ядро не монолитное, а модульноеМодули - это способ загрузки компонентов и сделано для сокращения размера базы. Если загружаемые модули выполняются в адресном пространстве ядра, то это монолит.
lsmod | grep smb
= пусто
Это ни о чём не говорит. lsmod показывает только подгружаемые модули, а не вкомпиленные в ядро. То есть увидишь только те, у кого в конфиге ядра [M], а те, что [Y], не увидишь.
К примеру, наверняка у тебя ext4 поддерживается и вкомпиленно (built-in) в ядро. lsmod не покажет.
lsmod|grep ext
ext4 983040 3
crc16 16384 2 bluetooth,ext4
mbcache 16384 1 ext4
jbd2 167936 1 ext4
Благодаря вот таким новостям, перешел на кастомное ядро, в котором включены только нужные мне модули. Ядро из дистра лежит рядом, на всякий случай.
Бессмысленная трата времени. Незагруженные модули будь хоть трижды уязвимы, но ничего сделать не смогут, пока не будут загружены. А если в «нужном модуле» дыра, то без разницы, кто его собрал. Если руки чешутся хоть что-то сделать, лучше запрети загрузку модулей после загрузки системы, по крайней мере от половины проблемы защитит.
А это можно как-то сделать?
(запретить загрузку модулей)
Расскажите, как?
Заблеклистить?
> А это можно как-то сделать?
> (запретить загрузку модулей)
> Расскажите, как?Выделить "запретить загрузку модулей" мышкой, нажать правую клавишу, выбрать в меню "Искать...". Получить в выдаче ссылку https://www.opennet.dev/tips/2554_linux_kernel_module_limit_c...
Не, в твоей винде это не так делается.
1) Открыть проводник.
2) Искать *.exe
3) Нажать на результате Ctrl+A
4) Enter!
Рабочий код, как это делается на "моей" Винде, лежит у меня на Гитхапе. А своим бредом ты удалишь некоторые исполняемые файлы, но никак не решишь поставленную задачу.
А побородатей статью нельзя было найти?
Это уже не работает
> А побородатей статью нельзя было найти?Можно, я не запрещал.
> Это уже не работает
Местные эксперты могут читать лишь первый абзац, на чём традиционно попадаются. Цитирую последний:
"Для блокирования загрузки модулей в более новых ядрах следует использовать файл /proc/sys/kernel/modules_disabled (для запрета загрузки модулей в него достаточно записать 1).
# echo 1 > /proc/sys/kernel/modules_disabled
# modprobe spidev
modprobe: ERROR: could not insert 'spidev': Operation not permitted
Можно. Если сам не сможешь нагуглить первую же ссылку на StackOverflow, спроси у ChatGPT. Она знает, я только что проверил.
хорошо что у моего сервера 4.19 ведро
> Уязвимости в ядре Linux, затрагивающие ksmbd, ktls, uio и сетевой стекОхохо, давненько сишных дыр не было.
Ну как давненько, может целых пару недель.
Итак у нас есть
> удалённо без прохождения аутентификации добиться выполнения своего кода с правами ядра
> локальному пользователю выполнить свой код с правами ядра
> позволяет поднять свои привилегии в системе x2Прэлестно, просто прэлестно!
А в чем же проблема?
> use-after-free
> чтение данных из области за пределом выделенного буфера
> use-after-free
> запись в область памяти вне буфера
> use-after-free
> переполнение
> use-after-freeПросто типи-кал Cи!
Причём тут Си? Проблема в разработчике, кто это писал, и ревьюере, кто это не увидел, и тестировщике, кто не проработал этот кейсЯзык даёт возможность, а как ею воспользуется разработчик, это уже не проблема языка
> Проблема в разработчике, кто это писал, и ревьюере, кто это не увидел, и тестировщике, кто не проработал этот кейсИ конкретно в тебе, кто все еще не рассказал, где найти разработчиков, ревьюверов и тестировщиков, в которых нет проблем.
И в тысячеглаз еще.
Проблема как раз в связке "язык + мясной мешок".
Потому что когда сишный код получается генераторами или трансляцией из высокоуровневого языка, то такие ошибки крайне редки, если вообще случаются.
Потому что там код "пишет" неустающий неотвлекающийся комп.А погромист, пусть каким бы он крутым не был, про что-то забывает, что-то путает, где-то не так прочтет и так далее.
Просто откройте патчи. Там фиксы разные, но есть и вида
if (!vlen)
return -EINVAL;
Ну подумаешь, забыл проверить что есть длинна)) Ну с кем не бывает)Или из того же файла
if (negblob_len < offsetof(struct negotiate_message, NegotiateFlags)) {
rc = -EINVAL;
goto out_err;
}
Забыли проверь что не превысили значение.А после определенного размера кодовой базы и сложности проекта такие ошибки будут делать раз за разом.
Потому что человека так быстро не изменить и внимательности не добавить.
Например NIM. Но такой подход с трансляцией имеет один огромный недостаток, не будет полноценной отладки, в nim огромный костыль, а не отладка. Другое дело если они полностью перейдут на llvm базу тогда в языке будет все, и оно возможно будет конкурентоспособное. Но этому никогда не бывать ибо от части эго, от части они ведь не могут бросить столько лет работы в пустую, если курить то до конца пока лёгкие не отказали?!Это как go. Когда go только создавался llvm имел ограничения и проблемы, они решили делать по своему с нуля, но сейчас их нет давно.
Тут дело не во внимательности. Профессионал никогда не забудет о проверках - потому что это уже вторая натура. К тому же, вполне может выступать адекватным мерилом профпригодности.
Проблема не в том, чтобы не забыть проверки. В большой системе вроде ядра, с кучей уровней абстракции, важно понимать, на каком ты уровне работаешь и должна ли та или иная ошибка быть проверена именно на этом уровне, а не уровнем выше или ниже, а для этого требуется понимание архитектуры системы. Если проверки просто расставлять везде где попало, то оно будет тормозить.
> и должна ли та или иная ошибка быть проверена именно на этом уровнеУгу, поэтому всё ядро у нас держится на "мамой клянусь, там не будет null!" погромистов.
И как мы видим, работает это так себе)) Зато не тормозит!
> Профессионал никогда не забудет о проверкахОкей... Но тогда у нас нет ни одного профессионала-ядрописателя))
Может вы знаете где таких найти?
А то они очень нужны, но все что пишут почему-то стабильно косячат.
Можно писать по докам, спецификациям, RFC и всё будет красиво и правильно, а пото внезапно послан нестандартный пакет или> при отправке специально оформленных неаутентифицированных TCP-запросов
и ломается.
Но сделано ведь было правильно, а проверки на каждый чих - это ж тормоза?
Этот моральный релятивизм уже порядком набил оскомину. Виноваты все (а то есть никто), кроме инструмента. То есть если вместо скальпеля оперировали кухонным ножом, то это проблема в хирурге, а не в том, что нож плохой инструмент для операций, хлеб же режет! Уволим хирурга, ножи в операционной оставим и будем просто искать того, кто умеет им операции делать, просто ещё не нашли! Логика - во!
Так проблема в том что "хирурги" сами сопротивляются!
Они не хотят менять кухонный нож, не то что на виброскальпель, даже на обычный с лазерной заточкой.
Они говорят:
"я уже привык к кухонному ножу, он дает свободу - я могу и пациента почикать, и бутерброд маслом намазать, и колбаски на бутер порезать.
И все это одним ножем, мыть его не обязательно! А ваш скальперь так может! Нет? Вот то-то и оно!".И если уже говорить про хирургов, то наши, в ядре, работают без кольчужных перчаток, которые оберегают пальцы от отрезания.
Ну и без диагностики (до и после вмешательства) - тесты это долго, профи и так знает что нужно.
>То есть если вместо скальпеля оперировали кухонным ножом, то это проблема в хирургеКак говорили в советской науке, если ты не можешь соорудить из консервной банки ускоритель частиц, то ты не физик. И это правда. Профи может работать с любым инструментом. Если кому-то для написания софта обязательно нужна IDE с кучей свистелок, и "безопастный" ЯП, который тиоп не даст накосячить- то этот чувак не разраб.
> Как говорили в советской наукеИ где советская наука?)) Как и сам совок?
А сколько ускорителей было создано из консервных банок?> который тиоп не даст накосячить- то этот чувак не разраб.
О, началась песня про ненастоящего шотландца!
А что же тогда ты скажешь про того, кто написал эти баги?
И про ревьюверов которые дали свое добро на мердж?
И про мейнтейнера, которые (по идее) тоже просмотрел код и нажал кнопку мердж?Это же все конкретный люди
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>Может они тоже не разрабы?
>И где советская наука?))Ракеты запускает по всему миру
>Как и сам совок?
Светлоликие эльфы распродали.
>А сколько ускорителей было создано из консервных банок?
Все ускорители были из консервных банок. И именно на них построена крупнейшая в мире атомная промышленность (которая сейчас в РФ). Не в пример коллайдеру в Швейцарии, в которого вбухали, а толку кукишь.
> Ракеты запускает по всему мируА не много ли вы на себя берете такими заявлениями?
Напомнить кто первым ступил на чужое небесное тело? Может ту ракету тоже советская наука сделала?
Или кто вывел самый известный телескоп? А потом еще один?
Пока что наследие советской науки только портит поверхность луны неудачными посадками и пополняет подводные группировки спутников.> Светлоликие эльфы распродали.
Свои же распродали. Те кто раньше корочками партийными щеголял.
> Не в пример коллайдеру в Швейцарии, в которого вбухали, а толку кукишь.
Ну да, фундаментальная наука это фигня. Главное - ядерная дубина! Ею можно всем грозить и вот тогда они нас уважать начнут!
> Как говорили в советской науке, если ты не можешь соорудить из консервной банки ускоритель частиц, то ты не физик. И это правда.нет, просто в интернете кто-то балабол.
> Профи может работать с любым инструментом.
маладец. ждем от тебя видео припаивания VL151 в корпусе WLCSP6 каменным топором, разогреваемым в костре.
> Если кому-то для написания софта обязательно нужна IDE с кучей свистелок, и "безопастный" ЯП, который тиоп не даст накосячить- то этот чувак не разраб.
и видео ICSP-программирования свежеприпаянной VL151 методом ловли молний на вершине Фудзиямы.
> Этот моральный релятивизм уже порядком набил оскомину. Виноваты все (а то есть
> никто), кроме инструмента. То есть если вместо скальпеля оперировали кухонным ножом,
> то это проблема в хирурге, а не в том, что нож
> плохой инструмент для операций, хлеб же режет! Уволим хирурга, ножи в
> операционной оставим и будем просто искать того, кто умеет им операции
> делать, просто ещё не нашли! Логика - во!Вот это доказательство по аналогии весьма показательно. Оратор не знает, что в вузах хирургов учат помимо всего прочего одевать обязательно чистый халат.
> одевать обязательно чистый халатВо что?
Кто халат не одел, того отчисляют и он идёт собирать пакетики.
Есть скальпель. Существует с незапамятных времён. Только херурги не спешат им пользоваться.
Ну вот, сейчас эти места переписали на раст, и теперь там никогда не будет никаких уязвимостей.
И вообще никаких ошибок никогда, ага.
>реализации TLS на уровне ядра (ktls)В Linux изобрели http.sys?
А что, TLS нужен исключительно для HTTP?
Вы таки пропустили https://en.wikipedia.org/wiki/TUX_web_server ?
Нет, они изобрели SChannel, но это детали... А что, собственно, такого плохого в http.sys?
По факту, Microsoft IIS - это единственная реализацию UNIX Internet Daemon на уровне ядра ОС и умеющая работать на железе без виртуализации с учетом аппаратной топологии сервера. Оно поддерживает кластеризацию (да, даже несмотря на то что это драйвер) и прекрасно используется на бекендах крупных сайтов вроде той же NVIDIA и StackOverflow.Опять же вам там комментаторы выше уже написали, что потуги сделать это для Linux были, но осилить не смогли. Отсутствие поддержки TLS в ядре особенно сильно мешало.
Чтобы было понимание... Оно не только в ядро идёт. Оно может быть переложено на ASIC сетевого адаптера.
С такими задачами прекрасно работает Chelsio, главное только для RDMA их не использовать.
Mellanox, опять же: https://docs.nvidia.com/networking/display/mlnxofedv24010331...)+offloads
но они там озабочены шифрованием RDMA-трафика им на вебсерверы плевать. И, да, оба вендора делают kTLS Offload прежде всего для FreeBSD
Зохавал ссылку OpenNET: https://shorturl.at/apLOX
Никогда не обновляю ядро, кто ещё?
Собрал только-что ядро 6.6.18 и опять дыры. Как только я собираю себе новое ядро, так дыры :)))
>Собрал только-что ядро 6.6.18какой смысл старые ядра пересобирать? linux-6.7.6-gentoo
>>Собрал только-что ядро 6.6.18
> какой смысл старые ядра пересобирать? linux-6.7.6-gentooНу это самый свежий longterm. Как то так.
ты и сам своего рода long term support для твоего ядра, а если нет разницы...
>>Собрал только-что ядро 6.6.18
> какой смысл старые ядра пересобирать? linux-6.7.6-gentooЯ ещё немножко патчу своими патчами. Так что мне нужно стабильный long-term вести.
Ну чтож ты такой невнимательный, с дырами собираешь? Исходники же открыты, как можно было эти дыры не заметить?
Собирай чаще, чтобы находили оперативнее.
>ошибка в коде освобождения блоков"Существенно выше" :)
Довольно интересный факт того что новости по безопасности (с их исправлениями) повышают требования к безопасности кода, а значит аналогичные творения, которые в своё время стоили относительно недорого и делалось тяп-ляп сейчас будут делать по заоблачным ценам. Да и возможности отвоевать рынок потребителей тоже не сверхприбыли при отсутствии конкуренции.
Все сведется к тому что корпорасты протащут раст в ядро и в базовые подсистемы, затем случится наплыв трансгендерных смузихлебов, а патчи будут пересылать через github pull request, и мы увидим дивный радужный мир без радужных очков, люди будут ставить emoji на каждый чих, самопровозглашенные эксперты будут советовать инженерам из intel/AMD как на самом деле нужно использовать преимущества раста в виде чрезмерного сокращения кода через синтаксис, а каждый студент будет считать долгом жизни запилить патч на исправление одной орфографической ошибки с тегом typo, самому Линусу чтобы распечатать скриншот approved & merged в рамочку на стену в кабинет который он получит по гендерной квоте в компании Facebook.Ну уж нет, пусть лучше на С++ переходят.
А минусы будут? Да пусть разработчики хоть трижды трансгендеры, если это улучшает в результате итоговый софт.
Ресурсов жрать больше будет.
С чего бы?
С того, что любой растовый variant работает через динамический диспатч на каждый чих и с того, что ядро писалось под gcc.
А ты бесплатный ланч захотел? В расте проверки есть, а в сишке — их просто нет. Отседа сишка и быстрее, и с меньшим оверхедом. Но тогда при эксплуатации будет успешная эксплуатация, а не паника.
>проверки есть, а в сишке — их просто нетКак будто сишка запрещает писать нормально, с проверками там где нужно.
> Как будто сишка запрещает писать нормально, с проверками там где нужно.Всё намного хуже - сишка позволяет писать не нормально)) И даже местами это поощряет - не то что ошибки компиляции не будет, но даже ворнинги будут не всегда.
Поэтому 99% ленивых кодеров пишут как им удобно.
Ну напишешь (нет, не напишешь), станет так же тормознуто, как в Rust. А код станет лапшой из проверок. А ускорятели начнут ныть, что та проверка не нужна, и эта не нужна.
> так же тормознуто, как в Rustвранье, раст сравним по скорости с си
> А код станет лапшой из проверок.
С такой убогой системой типов как в сишке - да
В нормальных языках - нет.> А ускорятели начнут ныть, что та проверка не нужна, и эта не нужна.
Просто научитесь посылать таких умников в Ж.
Вот что-то Линус не научился посылать умников, засунувших кусок говна в ядро, в Ж. И даже пальцем не помахал.
> Вот что-то Линус не научился посылать умников, засунувших кусок говна в ядро, в Ж. И даже пальцем не помахал.Почему это не научился?? Он всё прекрасно умеет. И раньше, когда невидию посылал, и сейчас, когда во всех красках описывает что думает про очередной патч.
Просто он, в отличие от муд(р)ейшего Анонима-154 не считает раст плохим.
Не идеальным конечно, но хорошей основой для продолжения работы всей его жизни.
Но куда же какому-то Линусу до нашего Анонима))
> самопровозглашенные эксперты будут советовать ..."когда эти баритоны кричат 'долой разруху', я смеюсь, ей богу, мне смешно - это означает, что каждый из них должен лупить себя по затылку ..."
> каждый студентпо разным причинам работает под Windows.
Предлагаешь заменить "типи-кал Cи" на "типи-кал Cи++"?
На C++20, как минимум.
>а патчи будут пересылать через github pull requestkernel.org станет "устаревшей технологией, которую надо выбрасывать". Код ядра переведут в Сargo.
Молуль ядра можно зачрутить как обычный сервис?
Нельзя. За счёт этого и быстро.
Столлмана надо было слушать, тогда можно было бы.
Отчасти его слушать. А сам HURD писать на C++. Вопреки его мнению (тогдашнему?) про C++. Вот пример, Genode тоже микроядерная, а будучи написанная на C++, выглядит куда как живее, чем HURD.
> Вот пример, Genode тоже микроядерная, а будучи написанная
> на C++, выглядит куда как живее, чем HURD.Она на 3/4 только на С++.
А самое низкоуровневое это С и ассемблер.
> Она на 3/4 только на С++.Немного не так.
"Она на целых 3/4 на С++.
И всего 1/4 это С и ассемблер."Вот так намного лучше))
>> Она на 3/4 только на С++.
> Немного не так.
> "Она на целых 3/4 на С++.
> И всего 1/4 это С и ассемблер."
> Вот так намного лучше))Не, лучше так:))
25% кода на Си и асме выполняют 75% работы.
Чё там на C? Микроядро, которое стороннее и на выбор. Но есть микроядра и на C++. И даже на Ada есть, и даже прошло формальную математическую верификацию.
в винде, наверное, можно, в линуксе нет понятия "сервис"
В Винде драйверы тоже в общем для всего ядра адресном пространстве. BSOD не просто так.
> В Винде драйверы тоже в общем для всего ядра адресном пространстве. BSOD
> не просто так.Драйверы принтеров и сканеров в юзерспейсе работают.
Так драйверы принтеров и в CUPS в юзерспейсе работают. Это то, что там называется print filters.
> Драйверы принтеровСвятая наивность, я аж не могу...
Про GDI-принтеры слышал? https://en.wikipedia.org/wiki/Graphics_Device_Interface
Они шрифты на печать рендерят ядром, причем именно этим самым модулем.А есть и особо мерзкие конторы вроде Kyocera и Ricoh, которые не просто используют GDI, но еще и переопределяют его куски своими интерфейсами в WDM-драйвере.
И всем этим рулит spooler, код которого тащится также как и GDI со времен Windows 3.1.
> в юзерспейсе работают.
В юзерспейсе работает сетевая установка этих драйверов ядра с SMB-шары соседнего компа к которому подключен принтер. Как ты думаешь когда стало запрещено устанавливать абы-какие драйверы с локальной сети по умолчанию? Windows 10, какой-то там очередной Update...
Cервер печати EasyPrint спасает от этого безобразия, но пока не встретит какую-нибудь многофункциональную подписочную дрянь, которую HP умышленно втюхивает людям, будто это принтер...
Теперь, благодаря Лёне П. и его systemd есть.
> в винде, наверное, можно, в линуксе нет понятия "сервис"В винде вот именно сервис в его понимании - это вообще shared lib. Ну вот такой вот хреновый у майкрософта сервис изначально.
И да - по классике их хостпроцесс грузил себе и они улетали - ВСЕЙ ОРАВОЙ. Очень круто и надежно было. Потом доперли по 1 процессу на либу делать, так развелась пачка svchost'ов. Тоже очень удобно, угадай по названию процесса в таскманагере чье это.
Сервис в Винде - это то, что прописано в соответствующем разделе реестра и запускается SCM (сервис контрол менеджером). То, что обычно называют "драйвер" правильно называется "сервис режима ядра".
забавно, что в винде такие уязвимости уже не ищут, их уровень теперь - неуловимый Джо, индусы чинят баги, которые сами же создают с каждым апдейтом
А тебе-то откуда знать?
Ты работаешь в мелкософте? Ты знаешь что они исправляют? Может еще и сам пишешь?)
Ты ж понимаешь, что попытки обелить овнокод в линуксе через принижение конкурентов выглядят просто жалко?))Или ты считаешь нормой, что тыщщи глаз в Открытом Коде так и не смогли найти remote code execution и получения рута с ноября 2021 года?
А ведь сколько васянов верило им! Что код открытый, а значит надежный!
Его же каждый может его посмотреть и проверить)) А вот оно как получилось...
> тыщщи глаз в Открытом КодеЭто миф.
Сам ты миф. Сабж как бы обнаружили и исправили, о том и новость.
> Сам ты миф. Сабж как бы обнаружили и исправили, о том и новость.Новость о том, что remote RCE жили больше 3 лет.
Т.е. больше трех лет те, по чьему заказу они были добавлены, использовали их по полной.
А главное - всегда можно сказать "ну ошибся погромист, такое со всем бывает".Сейчас пришло время их закрыть - может уже не нужны, а может кто-то случайно нашел.
Но ядро большое, там таких дверок еще на сто лет припасено.
> Сам ты миф. Сабж как бы обнаружили и исправили, о том и
> новость.Обнаружили, но, "тыщи глаз опенсорса" тут не причём.
> Проследить за исправлением в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.а где проследить за исправлениями в Tiny Core Linux?
> CVE-2023-6932 - состояние гонки в реализации протокола IGMP (Internet Group Management Protocol) в IPv4-стекеА ведь в ненужном IPv4 ещё много древних уязвимостей, пора бы уже выпиливать
в IPv6 думается их еще больше, не успели еще выловить)))
Все что принимает сетевые пакеты должно работать только в пространстве пользователя и огорожено правилами apparmor. Только так, никаких ядерных сетевых интерфейсов.
Как это обычно бывает, реально ни тебе пруфов-эксплойтов, ни реальных векторов атаки господа-торговцы безопасностью не предоставили.
Одни лишь "может" и "потенциально".Когда ничего по факту не нашли, а деняжек хочется.
> ни тебе пруфов-эксплойтовА, т.е. нужно было прям еще и ссылочку на эксплойт приложить.
Для RCE которое не требует авторизации...
Да ты просто гений! Нужно тебя назначить министром цифрового развития, связи и массовых коммуникаций!> Когда ничего по факту не нашли
Нашли две дырени, которые жили в ядре кучу лет.
> Нужно тебя назначить министром цифрового развитияГолосуйте за меня!
Я ух как приструню торговцев безопасностью. Будут работать от рассвета и до забора, а не как сейчас.
Зачем пруфы и эксплойты, главное поднять визг до небес о том что "небезопасно" и что якобы переписав на другой язык баги по волшебству куда-то исчезнут.
> Зачем пруфы и эксплойты, главное поднять визг до небес о том что
> "небезопасно" и что якобы переписав на другой язык баги по волшебству
> куда-то исчезнут.Не нужно фантазий. Про другой язык никто даже не упоминал.
Просто дыряшка defective by design и в очередной раз показала, что писать на ней надежный софт больше helloworld не возможно. Для этого нужны гарантии совсем другого уровня. И совсем другого бюджета.А вот как это исправлять - каждый додумывает сам.
Заменить ее на современные плюсы - уже был был огромный шаг вперед.
Ссылка в новости https://www.zerodayinitiative.com/advisories/ZDI-24-194/ как бы намекает, что это дыры, которые были эксплуатированы на соревновании Pwn2Own, проводимом Zero Day Initiative.
Но пруфа экспдойтов все еще ждем да.
чем выше сложность проекта - тем выше вероятность, что в какой-то момент начнутся проблемы разного рода (из-за потери/ослабления контроля).. скорее уместно вспомнить:
- йа слишком стар, чтобы самому конпелять/(и конфигурировать) ведро (вместо того, чтобы держатьтолько строго необходимое);
- эта "система" сертифицирована и... нувыпонели..;
- диды/смузихлёбы/школота/васяны накосорезили и дыры с 80-ых/90-ых висят..
хорошо, что нашли.. ещё лучше - что устранили..
CVE-2024-26601 - kernel: ext4 - issue introduced in 5.11 and fixed in 6.1.78, 6.6.17, 6.7.5, 6.8-rc3У меня тут вопрос. Если я отформатировал диск, используя ядро с некоторыми ошибками в ext4, которые могут привести к повреждению данных, мне его переформатировать с новым ядром нужно?
Хм. Ну я бы fsck.ext4 -f запустила для уверенности.
> Уязвимости устранены в обновлениях ядра 6.7.2, 6.6.14, 6.1.75 и 5.15.145.Зачем в линуксе столько версий ядер, чтобы что?
чтобы stable nonsense жил долго и кормил много обезьянок.
>> Уязвимости устранены в обновлениях ядра 6.7.2, 6.6.14, 6.1.75 и 5.15.145.
> Зачем в линуксе столько версий ядер, чтобы что?Чтобы гонять стабильный продакшн, используя кернел который в той конфиге точно работает, без крупных перетрясок которые могут потенциально что-то сломать.
Кому-то это надо. Кому-то нет. Ну а BSDшникам это, конечно, не понять. Кто ж бсдой в проде то пользуется нынче?!