В ядре Linux выявлены три уязвимости:...Подробнее: https://www.opennet.me/opennews/art.shtml?num=59409
> use-after-free
> обращению к области памяти за пределами конца массива
> приводит к двойному вызову функции free()Это же full house!
Опять не настоящие подставные сишники устроились на работу, а потом роняют контору, написал вредноносный код. А потом "ой, мы ошиблись"
опять любители безопасТных язычков ничего написать не смогли кроме драйвера мигания светодиодиком, да и тот panic вызывает и использует кучу сишных деталек.Ну что ж ты будешь делать, опять придется пользоваться опастными и решать проблемы по мере поступления.
Так они уже написали целый видеодравер.Печально другое. Любители дыряшки так и не научились считать размеры массивов!
А оставшиеся тыщща глаз не смогли это заметить за последние 9 лет.
Вот и приходится переписывать это все г. А написали его огого сколько...
Целый драйвер который никто не использует. Вон карго как только начали использовать, сразу дыры повылазили. А тут стоит на 90% линуксов (андройд не линукс) и только щас нашли.
Когда из карго прилетает 100500 пакетов, то ревьювить ещё легче, правда? Как node modules с желто-синими пост-скриптами
А это кстати вопрос. Что легче ревьювить:
- 20 атомарных маленьких пакетов, по 1000 строк, каждому из которым можно бампнуть версию
- или одну либу на 20000 строк, которая, при той же скорости добавления изменений, будет обновляться существенно чаще
Что-то подсказывает что второй вариант существенно хуже.
>Что легче ревьювитьзачем это пользователю?
>или одну либу
в чем проблема, когда есть разделение труда? 20 пакетов - 20 пар глаз на 1000 строк кода. В чем проблема, собирать параллельно их опыт, и автоматизировать процесс.
> зачем это пользователю?А при чем тут пользователи? Большинство даже не знает что такое либа, пакет или карго.
Речь идет про софтиписателей.> в чем проблема
проблема что в одной большое либе зависимости и неявное взаимодействие размазано по всей либе. Даже если она идеальна и разделена на относительно атомарные части, то у нее есть какие-то общие части, которые придется просмотреть всем ревьюверам.
>А при чем тут пользователи?А кто либой пользуется?
>которые придется просмотреть всем ревьюверам
Я напишу код, а тестировшики проверят, хрен вам. Культура разработки должна быть, первый тестировщик и ревьювер это тот кто пишет код. Щас понятие не имеют, что есть отладка, думают, что кто-то другой должен прийти и отлаживать их приложение.
Что-то мне кажется что мы о разных вещах говорим.
У меня либой пользуются разрабы, ну, в крайнем случае, мейнтейнеры. Всё. Пользователь о либе вообще ничего не знает, если вышеперечисленные хорошо сделали свою работу. У него есть TUI/GUI, через него и взаимодействует.По поводу культуры разработки. Я писал про случай, когда тебе в проект нужно затянуть чью-то либу и она должна быть отревьювлена разрабами. Тестировщики код смотреть не будут, это будут делать разрабы. И речь была про удобство и эффективность этой части.
Пользователей, которым по тем или иным причинам, приходится собирать код с сорцов не рассматриваю.
Или у них уровень разраба и они сами могут посмотреть код и тогда он не пользователь.
Или им пофиг что собирать - 100500 мелких крейтов, или одну большую кучу кода, или пачку блобов.
Никто тебе не мешает отобрать нужные тебе крейты (с иерархией :) ), скачать их локально, отревьюить их и использовать только проверенное (ты можешь указывать, откуда сборщику брать крейты). Совсем так же, как ты делаешь с используемыми тобой в своем проекте чужими сишными исходниками. И так же, как с чужими сишными исходниками, следить за обновлениями 100500 библиотек и перепроверять их будешь сам. Или ты никогда ничего чужого сишного в свои проекты не суешь, все велосипеды пишешь с нуля?
Я использую си только в мелких проектах. В остальном Go или C++ (редко)
Хорошо, что так можно. На Го меня бесит перебивать через replace, банально когда надо доработать что-то, не пиная в свой репозиторий
> Вот и приходится переписывать это все г. А написали его огого сколько...Поэтому переписывать на пару столетий хватит.
Пох как обычно в своём стиле - из программ на Rust тебе следует обратить внимание на Libreddit & Veloren.
о да, о да - это ненужное ненужно безусловно по сложности эквиваленты nftables. А не корявому скрипту на баше первое и я уж не знаю даже что из времен zx второе.
Потому что nftables такое же ненужное ненужно. Были нормальные iptables, но нет, нужно было понаписывать...
> Потому что nftables такое же ненужное ненужно. Были нормальные iptables, но нет,
> нужно было понаписывать...Да как бы у iptables своих траблов хватало.
> у iptables своих траблов хватало.например ?
вангую экзотическую нагрузку и пограничные случаи, гже не ступала нога тестировщика.
Ведь настоящие, не подставные сишники таких ошибок никогда не сделают!
А настоящие безопастноязычковые всё перепишут.
> А настоящие безопастноязычковые всё перепишут.Начнут переписывать! (и сразу же все станет безопастно. нет кода - нет опастностей)
> всё перепишутТолько нужное и интересное им. Ибо за многие десятилетия миллионы си-г.внописателей написало столько кода разной степени полезности, что тому небольшому кол-ву растописателей пришлось бы его переписывать 10 000 лет. Так что нет, твоё творение никто переписывать не собирается, не надейся, жонглируй указателями самостоятельно и продолжай жрать кактус.
Не любой софт одинаково полезен. И к тому же, в опенсорсе очень много дубликатов (офисные пакеты и оконные менеджеры как пример).
Не знаю какие сишники так говорят, но если бензопилой можно оттяпать ногу, то значит можно. Без ошибок бывает только в воображении самозванных гениев, и тем более в таком гигантском проекте, если не самом крупном
Уж ты-то таких ошибок не сделаешь, ты-то не лезешь писать на Си, потому что понимаешь, что у тебя не хватит мозгов написать и тысячной доли того, что написал любой из этих подставных сишников.
Ахаха, писать на си можно научить даже обезьяну, что мы собственно и наблюдаем.
У него мало ключевых слов, примитивнейшая система типов и всего пару правил вроде "один раз выделяй память и один раз очищай ее, не больше и не меньше" или "не пиши за пределы выделенного буфера". Но даже это непосильно некоторым индивидам.
А ничего не написать и обзывать всех обезьянами может только сын обезьяны
То есть, Аноним с опеннена даже не пытается браться за дело, которому можно научить обезьяну. Трезвая и адекватная самооценка, респект.
>>вызвавший уязвимость код не был бэкпортирован в более ранние LTS-ветки ядерпора бы всем уяснить, что лтс - это не "гвно мамонта" это и есть стабильные версии, за которые можно отвечать. Юзая фичи из "новых ядер" вы просто работаете бесплатными бета-тестерами. Вас тупо используют.
Но 5.10 и 5.15 - тоже lts, а там эта бажина уже есть, причем 5.10 вообще SLTS.
Просто они всю связанную фичу поленились бекпортить на "гвно мамонта".
А с другая бажина вообще с ядра 3.13 - это на минуточку 2014 год.
Поэтому апелляция к LTS - просто теорема Эскобара ¯\_(ツ)_/¯
Пора бы тебе уяснить, что лтс существует для корпоративных аутистов и по факту не даёт ничего, никто не даст тебе никаких гарантий и лично я несколько раз видел как минорное обновление лтс ядра приносило кучу фатальных багов. Работоспособность актуальной версии намного выше чем рандомной копролитной версии.
>Проблема решена через удаление модуля tcindex из ядра, начиная с ветки 6.3.Чё?
А что делать тем кто не на самом последнем ведре сидит или вообще модуль этот использует?>Исправление проблемы пока доступно только в виде патча.
Эм что?
Можно вначале исправления залить, а потом уязвимость публиковать?
nftables
Деды пользовались iptables, прадеды ipchains - всё было стабильно, пришла молодёжь, придумала новый фаирволл - результат, как говорится, на лицо
Сколько уязвимостей в пропёрженных дедами iptables история умалчивает
Потому что nft
Не хочу тебя шокировать, но nftables и iptables это netfilter и они разрабатываются одними людьми
Вот просто одними людьми
Кстати, кажется часть из них разрабатывали и ipchains, но это надо проверить
Это не одни и те же люди! Тех, оригинальных, выкрали смузихлёбы на гироскутерах и заменили трансразработчитакми-жаваскриптерами, которым сделали операции по перемене пола, лица и языка программирования. Запомни: сишные диды святые, а виноваты во всём хипстеры!
Да, я вечно забываю, что у местного населения вокруг сплошные хипстеры(правда они не знают кто это), а от одного слова "смузи" они дохнут пачками
А то, что разрабы одни, просто в отличии от местных клоунов они не держатся за каменные топоры, они не знают и не хотят знать, хотя достаточно просто посмотреть на имена разработчиков, что бы понять, что мудрые диды и ненавистные хипстеры-смузихлебы это одни люди
> а от одного слова "смузи"ах, если бы
Ну имена именами ... но что-то я сомневаюсь, что, во первых, им не лень пилить 20 лет одно и то же, и, во вторых они сами пишут код, а не руководят.X11 и вяленый хороший пример. Вроде и люди делали те же, а одно "работает везде", а второе внедряется (в основном в умы) уже 15 лет.
Враньё.
И деды и пределы и отцы пользовались pf и ipfw.iptables это хипстеры устроили.
А nftables порриджи.
Эмм... а ipf тогда кто?
прадеды
> прадедыНе-не! Там выше все ходы записаны - "и деды, и прадеды" - это pf\ipfw, а я еще через ipf ftp пропихивал - видимо, совсем уж былинные времена, до слезания с пальмы...
"CVE-2023-35001 - уязвимость в модуле nf_tables, позволяющая локальному пользователю выполнить свой код на уровне ядра. Уявзимость вызвана некорректными манипуляциями с указателем при обработке выражений nft_byteorder , которые могут привести к обращению к области памяти за пределами конца массива. Для эксплуатации требуется наличие прав CAP_NET_ADMIN. Проблема проявляется начиная с ядра 3.13 и пока устранена только в форме патча."Обожаю когда находятся дыры которые уже могли бы в школу ходить...
Отрезвляет.
>Обожаю когда находятся дыры которые уже могли бы в школу ходить...хз кто нам эти годы NFT мог юзать, в RHEL8 ещё есть iptables.
у меня на арче-десктопе (6.4.1) до сих пор iptables
Не хочу тебя расстраивать, но и в RHEL8, и у тебя в раче это не iptables, а nftables-враппер
Оно просто делает вид, что оно iptables, но если ты заглянешь в nft list ruleset, то с удивлением узнаешь, что у тебя nftables
>Не хочу тебя расстраиватьС rhel ты не ошибся. А в рачике вполне себе
iptables -V
iptables v1.8.9 (legacy)lsmod | grep ipta
iptable_filter 12288 0
ip_tables 36864 1 iptable_filter
x_tables 61440 2 iptable_filter,ip_tables
в rhele, да, неплохо спрятали, в описании пакета ни слова про nft.
Ну видимо в раче единственный школьник не справился со сборкой, вот и юзают легаси
В RHEL, кстати, кажется и в 7ом уже это nftables, на самом деле, но я не уверен, как-то традиционно последние 23 года работаю больше с Debian-based и что там лучше знаю
>видимо в раче единственный школьник не справилсяпонтующийся бабуановец, пытающийся убедить себя в том, что насильно впаренный ему nft не гuано.
в арче и то и то можно поставить. это конечно школьник-way
>кажется и в 7ом уже это nftables
нюню
Насколько я помню, nftables на порядок быстрее. Заглянул в drop, куда автоматом сваливаются все переборщики fail2ban`ом, за год накопилось ~5000 адресов. Вопрос к iptables гуру - а старые таблицы такое тянули?
>за год накопилось ~5000 адресовзанимаешься хэрнёй, перевешай на другой порт sshd, если надписи мешают. А подобрать любой адекватный пароль по ssh невозможно.
Пароль?
И ничего не изменится, потому что сканирование всего диапазона IPv4 занимает считанные минуты, боты находят ssh на любом порту
А вот запрет паролей и переход на ключи убирает шансы перебора вообще
А переход на IPv6 убирает долбежку в порты, потому что найти где ты там среди этих триллионов адресов нереально
>боты находят ssh на любом портууверяю тебя, если у тебя брутят sshd где-то в 40000-50000, это не боты, а как минимум кульхацкеры.
"переход на IPv6" как средство от брутов звучит ещё большим бредом, чем fail2ban
> уверяю тебя, если у тебя брутят sshd где-то в 40000-50000, это не боты, а как минимум кульхацкеры.Такие же боты
Слушай, ну я работаю с 97 года и когда-то тоже слушал советы про засовывание головы в песок
Потом понял, что смысла нет, один фиг находят достаточно быстроПереход на ключи позволяет полностью избежать угрозы брутфорса
А использование IPv6 это в принципе нормально давно уже
Все нормальные хостеры дают тебе /64 или /56 на сервер, домашний провайдер у меня один дает /64, второй /56
Вешаешь где-нибудь на v6 свой ssh и забываешь про следы ботов в логах
Кстати, покойный Яндекс и живые Гугл, Амазон и прочие ФБ для своих серверов внутри ДЦ используют IPv6-only уже давно, то что его мало юзают на моей бывшей родинке-бородавке и потому ты его не юзаешь ничего не значит
>смысла нет, один фиг находят достаточно быстроа у меня не находят, десятки серверов торчат в инет годами. никто ничего не перебирает на портах в духе 43854
>Переход на ключи позволяет полностью избежать угрозы брутфорса
"угрозы брутфорса" нет в любом случае с несловарными паролями. есть дискомфорт от сообщений о "ххх неверных попыток"
ipset прекрасно тянул все что угодно с fail2ban
Вот в этом точно проблем нет и не было
>а старые таблицы такое тянули?да и больше, можете проверить. -А
Тянули, причем я использую именно таблицы а не нечитаемый и неконтролирыемый ipset (которому можно и 500000 скормить, но совершенно незачем, учитесь в агрегирование).Но у меня для тебя фиговая новость - из этих 5000 хорошо если только 30 относятся к тем же сетям из которых иногда работаешь ты и твой хомячок. И у тебя есть хороший такой шанс из-за кривых рук и плохо варящей бестолковки в один непрекрасный день обнаружить что ты отрезал яй...доступ сам себе.
> неконтролирыемый ipsetПолотёр из подвального ДЦ не осилил хэш-мап. Спешите видеть!
Он еще и ipset -L|grep или там ipset -L|awk не осилил, говорит, что прочитать ничего не может
У iptables начинаются заметные проблемы в производительности в районе 10к правил на цепочку. IBM не даст соврать.
скорее так - в районе 10k правил на цепочку _можно_ ухитриться вляпаться в проблемы.
Но надо стараться.Большинство локалхостов местных васянов никак эту проблему не заметят - как тормозил их написанный в 2002м году perl скрипт счетчика, так и будет. Задержки от iptables на этом фоне никто даже не увидит.
> скорее так - в районе 10k правил на цепочку _можно_ ухитриться вляпаться в проблемы.С 10k правил на цепочку получаешь практически гарантированные проблемы и с тем, что пакеты матчатся уже заметно долго, особенно для правил в хвосте цепочки, и с тем, что загрузка фаерволла в память занимает заметное на глаз время. IBM про это рассказывал ещё в 2019, в контексте массивных деплоев кубернетеса у их клиентов с тысячами и десятками тысяч сервисов на кластер.
Ну я не знаю чем там ебеме страдал - у меня оно было в 2012м и это ни разу не были поделки подобного типа. Возможно в этом и причина.Причем на железе казавшемся ретро уже в том 12м. (какой красочки украли...)
Сколько оно там загружалось (в one true iptables, разумеется, а не в новой модной поделке) - не могу сказать, но ни разу не было поводов присматриваться.
Проблемы со скоростью прохода по цепочке при желании можно было бы увидеть, но это надо было бы загрузить хост совершенно ему несвойственной деятельностью, а на том чем он был занят оно не отражалось, там своих совершенно других проблем хватало.(софтсвитчи у нас с такими правилами были, если что, т.е. это не результат деятельности fail2ban или еще чего безмозглого)
> поделкиПри чём тут это? «Поделка» вызывает ровно тот же iptables и загружает в него совершенно обычные правила, ровно так же, как ты это на баше делал в 2012.
> Сколько оно там загружалось (в one true iptables, разумеется, а не в новой модной поделке) - не могу сказать
На этом, в общем-то, можно и закончить. Что там было ты не знаешь, как работало не присматривался. А там того гляди выяснится, что правил у тебя было на два порядка меньше, и трафик измерялся в килобитах. Вся суть экспертизы поха: что-то как-то где-то было, но как именно, где и что за давностью лет уже не помнит, но по ощущениям — точно было лучше, чем сейчас, потому что тогда вообще всё было лучше.
> При чём тут это? «Поделка» вызывает ровно тот же iptables и загружает в него совершенно обычные
> правиланет. На этом, действительно, можно было бы и закончить. То есть ты темой не владеешь абсолютно.
> Что там было ты не знаешь, как работало не присматривался.
я знаю что там было, но меня не интересовали замеры с секундомером. Вот число правил я знаю, потому что да, с некоторой опаской периодически пересчитывал - многовато будет. И присматривался я к работе системы, по ее основному профилю. Она работала, остальное - совершенно неинтересно.
Траффик в килобитах - это вот _твой_ уровень экспертизы, потому что я назвал область применения.
Да, тогда в целом было лучше почти все - наследие тех времен когда код писали (да и все остальное делали) еще свободные люди для себя или для самовыражения, а не галерные индусы. Сейчас оно практически полностью прое...но.
В очередной раз удивляюсь, почему все так любят Си. Да, в языке более мощные средства мета-программирования и клевая оптимизация. Но его меньшая дружелюбность до сих пор аукается кучей проблем. Да, не все могут нормально на нем писать. Я в школе писал на ассемблере без отладчика. Я могу. У меня отладчик в голове. А индусы пусть дальше пишут на прощающих все возможные ошибки скриптах.
Меньшая дружелюбность чем у кого? Меньшая чем у ассемблера? Старость даёт о себе знать.
Это ты #define обозвал "средствами мета-программирования"?
В древнючей сишке нет никакого метапрограммирования. Она же тупая как лапоть.
А оптимизации к самой сишке никакого отношения не имеют. Современные компиляторы оптимизируют промежуточное представление и не привязаны к языку (за исключением древностей, которые к нему приколочены гвоздями).
Сишечку любят за то, что у неё предельно низкий порог вхождения. Язык же прост, как пробка, если не сказать, что примитивен. В нём же практически ничего нет. А вот о том, что он требует от программиста предельного самоконтроля, предпочитают забывать.
Можно подумать твои буферы это то что кому то важно в софте. Может от софта надо чтобы он был и работал? А уж как он буферы проверяет рано или поздно поправят.
А исправить получение рута через 13 лет после создания бага - это еще рано или уже поздно?
Чувак, если у тебя кто-то левый на сервере сначала получил простого юзера с CAP_NET_ADMIN, то у тебя УЖЕ проблемы, даже без этой "уязвимости"
Скажи это хостингам раздающим контейнеры. Не обязательно иметь CAP_NET_ADMIN в системе, достаточно обойтись net или user namespace, которые в некоторых дистрибутивах обычный юзер создать может.
>Да, в языке более мощные средства мета-программированиВ Си средства метапрограммирования?
Таблетки ненужно забывать пить.
И закусывать.
так макросы же
Он имел ввиду макросы
Жир аж стекает с экрана.
В очередной раз удивляюсь, почему все так любят троллить в комментах. Да, в них более мощные средства мета-коментирования и клевая оптимизация. Но его меньшая дружелюбность до сих пор аукается кучей проблем. Да, не все могут нормально в них писать. Я в школе писал на доске без спеллчекера. Я могу. У меня словарь в голове. А индусы пусть дальше пишут в прощающих все возможные ошибки социалках.
Ой, а что же случилось? Валгринд, Cppcheck и Clang-analyze не помогли?
Ой, а чего это ты на Redox не перешел до сих пор?
Зачем? "Скоро во всех линукс-ядрах!" Посмотрим, куда ты побежишь. На Hurd, небось?
Зачем ему куда-то бежать? Как сидел на винде, так и будет сидеть.
Почему винду не переписывают на безопастный языг?
https://www.theregister.com/2023/04/27/microsoft_windows_rust/
Ой
> https://www.theregister.com/2023/04/27/microsoft_windows_rust/
> Ой
а если дочитать дальше заголовка?"but the Rust port is currently disabled"
То есть хайпожору удалось все же не быть (пока) уволенным за год потраченный на переписывание-переписывание уже работающего кода на ненужно, и оно даже прошло какие-то тесты но... почему-то так и не попало в работающий софт.
Все что надо знать о хрустиках и их амбициях.
Одно из достоинств Гарвардской архитектуры заключается в том, что повреждение памяти данных не приводит к повреждению данных команд.