The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Локальная уязвимость в сетевой подсистеме ядра Linux

22.09.2023 09:09

В сетевой подсистеме ядра Linux выявлена уязвимость (CVE-2023-42752), позволяющая через манипуляции с сетевыми сокетами в пространстве пользователя перезаписать содержимое памяти ядра, что потенциально может использоваться для организации выполнение непривилегированным пользователем своего кода на уровне ядра. Уязвимость является локальной и не может быть эксплуатирована удалённо по сети. Включение механизма защиты SMAP (Supervisor Mode Access Prevention) в ядре блокирует проблему.

Уязвимость вызвана целочисленным переполнением в функции ядра Linux "__alloc_skb", обеспечивающей выделение памяти для структуры sk_buff (socket buffer), которая используется для хранения сетевых пакетов. Переполнение возникает из-за отсутствия должной проверки получаемых от пользователя параметров, применяемых для вычисления размера буфера. Для совершения атаки непривилегированным пользователем требуется доступ к созданию пространств имён идентификаторов пользователя (user namespace), которые могут предоставляться, например, в изолированных контейнерах.

Уязвимость вызвана изменением, внесённым в ядро 6.2, но данное изменение было бэкпортировано во все LTS-ветки, поэтому уязвимость проявляется и в более ранних выпусках поддерживаемых стабильных веток ядра. Исправления, блокирующие уязвимость приняты в состав стабильных веток ядра 5 сентября и вошли в состав выпусков 6.1.53, 6.5.3, 6.4.16, 5.15.132 и 5.10.195. Проследить за исправлением уязвимости в дистрибутивах можно на страницах: Debian, Ubuntu, Gentoo, RHEL, Fedora, SUSE/openSUSE, Arch.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Применение в Ubuntu своих патчей к OverlayFS привело к появлению уязвимостей
  3. OpenNews: Под видом эксплоита к уязвимости в rkvdec распространялся вредоносный код
  4. OpenNews: Уязвимости в ядре Linux, затрагивающие nftables и модуль tcindex
  5. OpenNews: Уязвимости в Netfilter и io_uring, позволяющие повысить свои привилегии в системе
  6. OpenNews: Уязвимости в QoS-подсистеме ядра Linux, позволяющие поднять свои привилегии в системе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59798-kernel
Ключевые слова: kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (108) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:18, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Хорошая демонстрация к недавней новости: https://www.opennet.ru/opennews/art.shtml?num=59791 "Модель полного переноса изменений выгодна прежде всего с точки зрения безопасности, так как, при выборочном переносе исправлений не всегда очевидна связь исправления с устранением потенциальных проблем с безопасностью. При полном переносе изменений проблема часто оказывается решена ещё до того, как появляется информация о том, что исправление блокирует уязвимость."

    С одной стороны, молча исправили 5 сентября и об уязвимости стало известно только 20 сентября, т.е. те кто переносят все исправления перенесли к себе исправление и оказались защищены.

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

    Получается палка о двух концах :-)

     
     
  • 2.4, Аноним (4), 09:28, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +20 +/
    Любая палка она о двух концах. Палка о трёх концах это, как минимум, рогатка =)
     
     
  • 3.10, Аноним (10), 09:35, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы каждая палка была третьей..
     
  • 3.133, Заноним (?), 16:35, 23/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Первое утверждение верно и для рогаки и для любой другой палки где N-концов > 2. ж)
     
  • 2.31, Мда (?), 10:47, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Они, видимо, имели в ввиду отсутствие кровавого мерджинга изменений. Нам приходится тащить для особенных клиентов древние версии софта и это то ещё удовольствие патчи мержить по частям.
     

  • 1.2, ryoken (ok), 09:21, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А у меня уже 2 недели как 6.5.3 :).
     
     
  • 2.9, ComradeDOS (ok), 09:33, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нормальные посоны уже давно на 6.5.4 сидят.)
     
     
  • 3.25, Минона (ok), 10:23, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На 6.(9)
     
  • 3.83, ryoken (ok), 15:02, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Нормальные посоны уже давно на 6.5.4 сидят.)

    Федороводы? :)

    На этой неделе не обновлялся, может уже и приехало в xanmod-оверлей.

     
  • 3.103, dannyD (?), 17:18, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>давно

    три дня как )))

     
  • 2.27, nlug7 (?), 10:30, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    нормальные пацаны на 3.10 сидят )))
     
     
  • 3.32, Мда (?), 10:47, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это какие-то ортодоксальные староверы.:)
     
     
  • 4.45, фнон (?), 11:47, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    староверы сидят на 2.6.х и 2.4 ))
    (относительно) недавно была тема про дроп i386, от там они ныли и возбухали
     
     
  • 5.120, Аноним (120), 20:46, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А они что-то важное держат на старом селероне или туроне? Не знаю что даже сказать — разве что переходить на MenuetOS
     
     
  • 6.130, Аноним (130), 07:48, 23/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не могут себе позволить апгрейд на железо хотя бы прошлого десятилетия
     
  • 2.116, Oe (?), 18:45, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    День назад поставил 7.8.5, жизнь стала реально лучше.
     
     
  • 3.118, Аноним (118), 20:38, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А волосы шелковистые и не секутся? Поздравляю.
     

  • 1.5, Пряник (?), 09:30, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Переполнение возникает из-за отсутствия должной проверки получаемых от пользователя параметров

    hahaha, classic

     
     
  • 2.71, Аноним (71), 14:06, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ага, надо переписать на Rust ;)
     
     
  • 3.115, Аноним (115), 18:44, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Раст не защищает от логических ошибок (такие вещи автоматически можно отслеживать разве что в каких-нибудь языках с зависимыми типами а-ля Idris)
     
  • 2.74, bOOster (ok), 14:22, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И Rust как не странно в этой проблеме не поможет. Тут только мозги человеческие нужны..
     

  • 1.7, Пряник (?), 09:33, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Баги тоже нужно бэкпортировать!
     
  • 1.8, Аноним (8), 09:33, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    зато почти каждый день новое ядро
     
     
  • 2.20, Аноним (20), 10:02, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Мерилом работы считаем усталость.
     
     
  • 3.124, Аноним (10), 21:26, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это про других же
     

  • 1.12, Rev (?), 09:42, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Включение механизма защиты SMAP (Supervisor Mode Access Prevention) в ядре блокирует проблему.

    А какие ещё механизмы затыкания пальцем уязвимостей они придумали?

     
     
  • 2.53, ivan_erohin (?), 12:23, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > механизмы затыкания пальцем уязвимостей

    санитайзеры, рандомайзеры, обнуляторы, WxorX, закладки в стек.
    по-моему все.

     

  • 1.15, Аноним (15), 09:56, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Комитетов и ревьюаеров лишить премии!
     
     
  • 2.16, Аноним (15), 09:57, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Коммитера и ревьюверов
     
  • 2.18, Аноним (20), 10:00, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как лешить нуля?
     
     
  • 3.21, Аноним (15), 10:05, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В минус
     
     
  • 4.23, Аноним (20), 10:08, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже я знаю как сделать шаражку.
     
  • 3.29, Мда (?), 10:43, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что такое 'лешить'?
     
     
  • 4.75, Аноним (71), 14:23, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отправить к лешему
     

  • 1.17, Анонит (?), 09:58, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    4.19 божественен.
     
     
  • 2.35, Аноним (118), 11:15, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, 5.4 и 5.10.
     
     
  • 3.57, Анонит (?), 12:41, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Игры хуже работает у которых как пояснили есть ограничение кадров в секунду.
     
  • 3.102, dannyD (?), 17:13, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>Нет, 5.4 и 5.10.

    прикола ради перепрыгнул с 6.1 на 6.5,
    такое впечателение, что с трактора на самолёт.

     
  • 2.132, Аноним (132), 15:45, 23/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Считаешь с 2.6.32 уже можно переходить?
     

  • 1.24, Аноним (24), 10:20, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Господа, а в Gentoo (и возможно в арче) ванильное ядро? А то я убунтоид сижу аж на 20.04 в браузере новости ютуб телеграм всё работает и слоупочу со старым дырявым ядром и хочу стать прогрессивным как вы тут(((
     
     
  • 2.48, Аноним (48), 11:54, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    20.04 до середины 24го года если авто-обновление настроено и комп перезагружаешь хоть иногда, то можешь не париться, будут фиксы приходить, а эту уязвимость тебе даже не бэкпортировали
     
     
  • 3.77, bOOster (ok), 14:25, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Перезагрузка - после linux обновления - опасное действие, ну по крайней мере в Ubuntu.
     
     
  • 4.98, Менеджер Антона Алексеевича (?), 16:53, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И чем же оно опасно?
     
  • 4.117, microcoder (ok), 18:46, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так не перезагружайся сразу, выжди сутки. В течении суток обычно на Манджаре прилетают хот фиксы, не знаю как в Бубунте
     
  • 2.59, Аноним (59), 13:02, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Gentoo ядра на любой вкус, включая ванильные.
     
     
  • 3.62, Анонит (?), 13:16, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    xanmod не очень.
     
     
  • 4.86, ryoken (ok), 15:06, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > xanmod не очень.

    Чем именно? Стоит не гавкается.

     
     
  • 5.96, Анонит (?), 16:16, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тем же,что описал выше. Как по мне так лучше РТ патчи накатить на 4.19
     
  • 2.79, Аноним (71), 14:30, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы свежее ядро собрать не обязательно быть на Gentoo. Скачать с kernel.org и собрать. Как собрать, статей найдётся предостаточно.
     
  • 2.84, ryoken (ok), 15:05, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Господа, а в Gentoo (и возможно в арче) ванильное ядро? А то
    > я убунтоид сижу аж на 20.04 в браузере новости ютуб телеграм
    > всё работает и слоупочу со старым дырявым ядром и хочу стать
    > прогрессивным как вы тут(((

    У генты сейчас есть своё бинарное дистроядро, 6.4.16, если eix не врёт. Есть и всякие оверлеи + флаги - у меня например xanmod подключен, оттуда на момент послденего системного обновления приехало 6.5.3.

     
  • 2.100, anonymous (??), 17:03, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В раче есть rt, zen, libre, xanmod и ванильное, на любой вкус, в общем.
     
  • 2.125, коньюктивит (?), 22:15, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А я даже не знаю на каком я сижу ядре. Там в "О системе" наверняка написано, но что-то мне лениво туда заходить. Всё работает как всегда. Скучно.. :(
     

  • 1.28, Мда (?), 10:39, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну как так то! Ну классика проверки же:
    if (a + b < a)
            /* overflow */
     
     
  • 2.36, Аноним (36), 11:20, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >if (a + b < a)

    Наивный...
    Почитайте, как в Си работает undefined behavior. В вашем случае если оба значения signed integer (не важно какого размера, главное что не unsigned), то signed integer overflow является UB, и в лучшем случае компилятор должен выдать warning когда такое делают, в худшем случае уберёт эту проверку и грубо говоря подставит if (1).

     
     
  • 3.42, 29см (?), 11:33, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сильно изменится ситуация с unsigned вне дебага?
     
     
  • 4.104, Аноньимъ (ok), 17:35, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В случае беззнакового оно просто начнет считать с нуля, оно как бы не ub, но смысл тот же.

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

     
  • 3.108, Мда (?), 18:15, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "Почитайте, как в Си работает undefined behavior." - после этого дальше можно не читать. Вы не очень понимаете, что такое undefined behavior.
     
  • 2.41, 29см (?), 11:29, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Компилятор случаем не схлопывает такие проверки с флагами выше -O0 по принципу "сумма беззнаковых всегда больше слагаемого, а знаковое переполнение UB"?
     
     
  • 3.49, фнон (?), 11:58, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а это может зависить от версии копилятора)
     
  • 3.110, Мда (?), 18:17, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теоретически может, но при разработке ядра (для ядра) есть описание по флагам и т.п., что включаем, а что нет. Известен же эпический rant Линуса по поводу какой-то новой на тот момент версии gcc, генерирующий дичь.
     
     
  • 4.126, 29см (?), 23:25, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде было про включенный по дефолту strict aliasing, с его запретом привычного type punning)
     
  • 2.50, фнон (?), 12:03, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    эта ситуация опять напомнила, что UB это костыли и зло

    известный пример https://godbolt.org/z/9j3Pxz
        if (number > 0) {
            number += 1;
            if (number > 0) {
                std::cout << number << " is a positive number.\n";
            }
            else {
                std::cout << number << " is NOT a positive number.\n";
            }
        }

    в зависимости от уровня оптимизации -O0 или -O2 результат получается противоположный(!)

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

     
     
  • 3.52, Серб (ok), 12:19, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понимаю, что этот UB для того и сделан, что бы можно было оптимизацию производить.
     
     
  • 4.54, фнон (?), 12:27, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ты это же не серьезно? правда?

    накой нужны такие оптимизации, которые полностью меняют поведение программы?
    если нельзя написать код который "гарантированно и однозначно" сложит 2 инта...
    "это просто какой-то позор" (с)

     
     
  • 5.56, Серб (ok), 12:37, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > если нельзя написать код который "гарантированно и однозначно" сложит 2 инта...

    У тебя поведение зависит от архитектуры (железа) и оно однозначно: результат то сложения одинаков.

    Вот сравнение да - для его выполнения идет учет UB.
    UB дает возможность как угодно оптимизировать

    Как хотим так и делаем.

    Хочешь повторяемости - не дай оптимизации использовать UB;
    Сделай так:

    number += 1;

    int number1 = number;

    if (number1 > 0)
    {
    }

     
     
  • 6.58, Анониммм (?), 12:46, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е выход из ситуации, просто подстраиваться под так называемый "стандарт"?

    > У тебя поведение зависит от архитектуры (железа) и оно однозначно: результат то сложения одинаков.

    Я вот это не очень понимаю ¯\_(ツ)_/¯
    У меня есть мой код и железо;
    Железо и код не поменялись, но компилятор обновил мажорную версию;
    Прога которая просто одевала ботинок, теперь отстреливает ногу

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

     
     
  • 7.60, Серб (ok), 13:06, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Т.е выход из ситуации, просто подстраиваться под так называемый "стандарт"?

    Выхода 2:

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

    Ну и третий. Работай с другим языком. Там будут свои трудности и ограничения, но это уже другая история.

     
     
  • 8.61, Анониммм (?), 13:14, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    понятно тогда я наверное предпочту сменить язык потому что проверять список UB ... текст свёрнут, показать
     
     
  • 9.66, Серб (ok), 13:53, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вот это вряд ли Тут или переносимость и возможности оптимизации, тогда UB нео... текст свёрнут, показать
     
     
  • 10.67, Аноним (67), 13:55, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А давно у нас ifdef запретили Пиши валидный код без UB, просто для каждой плат... текст свёрнут, показать
     
     
  • 11.70, Серб (ok), 14:00, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вы КО Это и есть способ обрабатывать UB Вот только есть языки, с жесткой заточ... текст свёрнут, показать
     
     
  • 12.112, фнон (?), 18:20, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    например MISRA C ADA поэтому у нас будут UB и код без безопастности отличный... текст свёрнут, показать
     
  • 11.106, Аноньимъ (ok), 17:47, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для каждой комбинации железа версии и типа компилятора и флагов оптимизации ... текст свёрнут, показать
     
  • 6.64, Анонин (?), 13:24, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А можно подробнее про "поведение зависит от архитектуры (железа)"?
    Для какого железа из такого кода нельзя получить одинаковые результаты?

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

     
     
  • 7.69, Серб (ok), 13:57, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > заменить маш код нативной суммы на нужное нам поведение во время компиляции?

    Зачем тогда ориентироваться на железо? Таскай свой рантайм и работай на нём. Тогда всегда всё будет предопределено.

     
     
  • 8.72, Анониммм (?), 14:11, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    возможно это будет лучше чем получение уязвимостей... текст свёрнут, показать
     
     
  • 9.80, Серб (ok), 14:47, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно Если бы победил, какой-либо рантайм и десятилетиями потом не менялся ... текст свёрнут, показать
     
  • 8.105, Аноньимъ (ok), 17:46, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Рантайм то тут причем Переполнение и интовая арифметика банальная и очень болез... текст свёрнут, показать
     
  • 4.68, Аноним (67), 13:56, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А в чем собственно оптимизация?
     
     
  • 5.73, Серб (ok), 14:14, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тут выхлоп в виде ассемблера не смотрел, но очевидно, перенос сравнения на этап компиляции.
     
     
  • 6.82, Анониммм (?), 15:00, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    префразирую классику
    те кто разменивают скорость на безопастность, получают и уязвимости, и тратят время на их исправление
     
     
  • 7.87, Серб (ok), 15:10, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > префразирую классику
    > те кто разменивают скорость на безопастность, получают и уязвимости, и тратят время
    > на их исправление

    Следует уточнить, что скорость - скорость выполнения кода.

    Время - время разработки.

    Уязвимости - слишком сужено. Ошибки, среди которых могут быть и уязвимости.

    Ну а как бороться с ошибками?

    Тесты, тесты и еще раз тесты. Причём в разном окружении. Что там насчёт CI?

     
     
  • 8.91, Анониммм (?), 15:33, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    неа, время - это не только разработка это еще время на фикс, на тестирование, на... текст свёрнут, показать
     
  • 3.93, Совершенно другой аноним (?), 15:58, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    UB это наследие тех времён, когда на некторых архитектурах байты были 9 бит, а слова - 36. И каждый из производителей железа тащил в свою сторону. Это сейчас, по большому счёту осталось только 2 платформы - x86_64 и ARM. У которых и индейцы совпадают, и float IEEE-шный, но так было не всегда..

    Если Вам надо гарантировано обрабатывать переполнение, в случае gcc добавьте -fwrapv. Кроме того, можно воспользоваться __builtin_sadd_overflow()/__builtin_ssub_overflow(). В стандарте С23 эту функциональность стандартизируют в форме ckd_add()/ckd_sub().

     
     
  • 4.107, Аноньимъ (ok), 17:49, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В стандарте С23 эту функциональность стандартизируют в форме ckd_add()/ckd_sub().

    Ура! Не прошло и 30 лет.

     
  • 4.109, Анониммм (?), 18:17, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо, спасибо очень помогло

    вот только ядро до сих пор на древнем С11 (и перешли они туда в 22м году!)
    причем не на стандартном ISO С, а на богомерзких гнутых расширениях gnu11

     
     
  • 5.131, Совершенно другой аноним (?), 14:41, 23/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вот только ядро до сих пор на древнем С11 (и перешли они туда в 22м году!)

    ну, как-бы, после C11 был C17, в котором ничего нового не добавили, а просто поправили накопившиеся замечания. А в C11, по сравнению с C99, имхо, более-менее полезными были alignas/alignof и анонимные структуры и объединения (которые существовали в виде расширений уже довольно давноЮ по-моему ещё в древнем bcc 3.1 уже были)ю

    > причем не на стандартном ISO С, а на богомерзких гнутых расширениях gnu11

    ну, как-бы builtin-ы, насколько я помню не зависят от версии языка, а -fwrapv существует уже очень давно, как минимум точно есть в gcc 4.8+.

     
  • 3.113, Мда (?), 18:32, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "Я тебя полюбил, я тебя научу" (с)
    См. флаг -fwrapv
     
     
  • 4.114, фнон (?), 18:36, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    тормозить будет(
    хотя да, предлагали
    https://bugzilla.kernel.org/show_bug.cgi?id=12597
     

  • 1.37, Аноним (37), 11:22, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пользуйтесь статическими анализаторами, и Раст будет не нужен.
     
     
  • 2.38, Анонин (?), 11:26, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да, пользуйтесь статическими анализаторами!
    И тогда вам не только придется фиксить классический баг, но и бекпортить еще в кучу старых веток.
     
  • 2.39, фнон (?), 11:27, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    но тогда придется переписать почти все ядро, тк там дидами хаков закопано %(
     
     
  • 3.89, Аноним (89), 15:23, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот поэтому раст и не взлетел - мешает работать, уязвимости оставлять!
     
  • 2.78, Аноним (78), 14:27, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Пользуйтесь статическими анализаторами, и Раст будет не нужен.

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

     
  • 2.95, Аноним (95), 16:01, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > статическими анализаторами

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

     
  • 2.111, фнон (?), 18:18, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну так ядро ими со всех сторон обмазано? обмазано же?
    так чего столько CVEшек ?
     
  • 2.121, Аноним (121), 20:48, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    гугл, собрав свою статистику по си плюсовым проектам, заявляет, что использовани... большой текст свёрнут, показать
     
     
  • 3.134, Аноним (-), 23:01, 23/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > ... We believe Android’s ongoing shift from memory-unsafe to memory-safe languages is a major factor... "
    > гуглу я доверяю в _этом_ вопросе гораздо больше, чем тебе, брат аноним.

    Ну, а на чём основано доверие им в *этом* вопросе? -
    Может они просто обставляют ситуацию для перетягивания всего что можно в "memory-safe languages"?

    Кто-то писал (не могу найти кто) - что какой-то чудак (автор?) убедил гугел что разработка языка Gо решит какие-то вопросы с параллелизмом, а на самом деле - просто протащил финансирование своих идей.
    Думаю что нужно смотреть  - "кому выгодно". И исходя уже из этого знания (а не из *какогототамдоверия*) делать выводы.

     

  • 1.47, Аноним (48), 11:51, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Блин, а где нормальный список уязвимых версий посмотреть? В ветку v5.15 этот коммит походу не был бэкпортирован.
     
     
  • 2.63, Анониммм (?), 13:22, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем? ты что не любишь сюрпризы?
    тебе это дает невереоятную возможность почиатать релиз ноуты, посмотреть код,
    возможно даже самостоятельно что-то бекпортнуть и собрать ядро ручками!

    просто манна небесная для пользователя линукса!

     
     
  • 3.65, Аноним (48), 13:40, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я уже порадовался что надо разобраться что есть в 'torvalds/linux', и что есть в 'stable/linux', и освежил в памяти что существует 'git tag --contains'. Но видимо что-то не докопал, откуда-то же взялось 5.15 в новости?
     

  • 1.76, Аноним (78), 14:24, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Уязвимость вызвана изменением, внесённым в ядро 6.2, но данное изменение было бэкпортировано во все LTS-ветки, поэтому уязвимость проявляется и в более ранних выпусках поддерживаемых стабильных веток ядра.

    Обожаю такое!

     
     
  • 2.94, Аноним (95), 15:59, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего необычного просто результат деградации специалистов.
     
     
  • 3.99, Менеджер Антона Алексеевича (?), 16:58, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, при чём эта деградация началась ещё в 1972 году.
     

  • 1.81, Аноним_5 (?), 15:00, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Просто какое-то сишное бинго.
    буффер + Integer overflow + UB = LCE
     
  • 1.88, Аноним (89), 15:18, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Включение механизма защиты SMAP (Supervisor Mode Access Prevention) в ядре блокирует проблему.

    Ну значит можно и не фиксить. Те, у кого камень без поддержки SMAP, сами виноваты и могут идти туда, куда Полонский послал.

     
     
  • 2.97, 1 (??), 16:30, 22/09/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а много ли таких хотя бы более-менее актуальных процов есть?
     

  • 1.101, dannyD (?), 17:07, 22/09/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так всё было понятно,
    в репах Gentoo появились ревизии 6.1.53-r1, 6.5.3-r1.

    это значит - срочно латали дыру.

    вот, теперь выяснили в чём дело.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру