The OpenNET Project / Index page

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

Уязвимость в libnv во FreeBSD и уязвимости в Netfilter в Linux

30.09.2024 08:42

В выпущенном в начале сентября исправлении уязвимости в библиотеке libnv выявлена логическая ошибка, из-за которой уязвимость не устранялась должным образом и система оставалась подвержена атаке. Библиотека libnv развивается проектом FreeBSD и используется в ядре и в приложениях из базовой системы для обработки списков в формате ключ/значение и для организации передачи данных при межпроцессном взаимодействии. Библиотека основана на алгоритме nvlist, применяемом в проекте OpenZFS, но во FreeBSD создана собственная реализация, поэтому уязвимость не затрагивает OpenZFS.

Уязвимость вызвана целочисленным переполнением, приводящим к выделению буфера, размером меньше, чем записываемый в буфер блок данных. Допущенная ошибка потенциально может использоваться для повышения своих привилегий путем перезаписи областей памяти в ядре и системных процессах, например, libnv применяется в libcasper при взаимодействии между привилегированным и не привилегированным кодом. Корректное исправление уязвимости (CVE-2024-45287) предложено в обновлениях 14.1-RELEASE-p5, 14.0-RELEASE-p11, 13.4-RELEASE-p1 и 13.3-RELEASE-p7, а также в форме патча.

Во FreeBSD также устранена уязвимость (CVE-2024-41721) в гипервизоре bhyve, потенциально позволяющая добиться выполнения кода в процессе, выполняемом на стороне хост-системы (обычно с правами root, но изолирован sandbox-ом на базе Capsicum), при манипуляциях внутри гостевой системы. Уязвимость присутствует в коде для эмуляции USB-контроллера XHCI и вызвана недостаточной проверкой границ буфера, что может привести к чтению данных из области вне буфера, а также потенциально к возможности записи в произвольную область памяти процесса. Атака может быть совершена при возможности запуска привилегированных процессов в гостевой системе. Уязвимость устранена в обновлениях FreeBSD 14.1-RELEASE-p5, 14.0-RELEASE-p11, 13.4-RELEASE-p1 и 13.3-RELEASE-p7.


Кроме того, можно отметить публикацию рабочих прототипов эксплоитов и описаний методов эксплуатации для выявленных ранее уязвимостей в ядре Linux CVE-2024-26808 и CVE-2024-1085. Проблемы устранены в обновлениях ядра 5.10.210, 5.15.149, 6.1.76, 6.6.15, 6.7.3 и 6.8, и уже исправлены в основных дистрибутивах (Debian, Ubuntu, RHEL, SUSE, Fedora). Уязвимости вызваны обращением к уже освобождённой области памяти в функциях nft_chain_filter и nft_setelem_catchall_deactivate в подсистеме netfilter и позволяют добиться выполнения кода с правами root. Для проведения атаки требуется наличие доступа к nftables, который можно получить при наличии прав CAP_NET_ADMIN в любом пространстве имён идентификаторов пользователей (user namespace) или сетевом пространстве имён (network namespace), предоставляемых, например, в изолированных контейнерах.

Эксплоиты подготовлены участниками инициативы KernelCTF (Kernel Capture the Flag), в рамках которой компания Google выплачивает вознаграждения за выявление уязвимостей в ядре Linux. Изначально проблемы рассматривались как одни из многих проходных потенциальных уязвимостей в ядре - например, в июньском обновлении пакета с ядром 5.10 в Debian помимо CVE-2024-26808 было исправлено ещё 345 (!) потенциальных уязвимостей. Еженедельно в ядре выявляется несколько десятков новых уязвимостей, которые ранее не были отождествлены с проблемами с безопасностью (например, на прошлой неделе было помечено 68 уязвимостей).

  1. Главная ссылка к новости (https://www.freebsd.org/securi...)
  2. OpenNews: Уязвимости во FreeBSD, позволяющие повысить свои привилегии или обойти изоляцию гостевой системы
  3. OpenNews: Релиз FreeBSD 14.1 с улучшенным звуковым стеком и поддержкой cloud-init
  4. OpenNews: FreeBSD переходит на сокращённый цикл подготовки релизов
  5. OpenNews: Уязвимость в поставляемом во FreeBSD варианте OpenSSH, допускающая удалённое выполнение кода
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61956-freebsd
Ключевые слова: freebsd, libnv, bhyve, linux, netfilter
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:01, 30/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    >было исправлено ещё 345

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

     
     
  • 2.3, Аноним (3), 09:12, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вот это приплёл...
     
  • 2.4, Аноним (4), 09:13, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какой справляется?
     
     
  • 3.13, Аноним (13), 10:44, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Turbopascal)
     
     
  • 4.42, Аноним (42), 12:42, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В нём тоже указатели можно.
     
  • 2.17, Аноним (-), 10:54, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Очевидно, язык не справляется со своими задачами.

    А причем тут язык?
    Тут проблемы в квалификации! Надо менять подходы.
    Например, для PR в ядро, обязать чтобы код проходил стат. анализаторы, добавить фаззинг, публично осуждать бракоделов (можно взять Линуса и дать ему затачу показывать им пальцы)


     
     
  • 3.53, Аноним (53), 14:41, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Может проблема и кроется в самом финском студенте?
     
  • 2.23, Аноним (23), 11:29, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что, задача была в безопасность? Вы, когда пишете код, сильно про безопасность думаете? Что ж вы так за безопасность переживаете? Есть примеры, когда лично ваш ПК пострадал из-за дыр в безопасности?

    Пс. Не к вам лично вопрос, а к обществу, которое бурно реагирует на такие новости.

     
     
  • 3.30, Аноним (30), 11:41, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы, когда пишете код, сильно про безопасность думаете?

    думать о безопасности, задача безопасников!

     
  • 3.54, Аноним (53), 14:43, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У кого-то ведь в ответственности не только личные ПК с игрульками. Приходится думать.
     
  • 2.38, Аноним (42), 12:34, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Надо полагать, что большинство связаны с комитерами, коих >2000 бывает. Всех не проверишь. Наверняка, есть и от организаций с трёхбуквенными названиями.
     
     
  • 3.52, Аноним (52), 14:26, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Другой язык программирования никак не сможет проверить этих 2000 а три буквы вставят что надо на любом языке. Даже на языке жестов.    
     
  • 3.55, Аноним (53), 14:44, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так сам финский студент на три буквы работает.
     

  • 1.6, Аноним (-), 09:26, 30/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > обращением к уже освобождённой области памяти в функциях
    > и позволяют добиться выполнения кода с правами root

    Ha-ha.
    Classic.

     
  • 1.10, Аноним (10), 09:52, 30/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в июньском обновлении пакета с ядром 5.10 в Debian помимо CVE-2024-26808
    > было исправлено ещё 345 (!) потенциальных уязвимостей

    Мда... Знатное peшeто это ваше ядро.
    Вот что бывает, когда десятилетиями омнокодят и кладут болтяру на безопасность.
    Думаю что в ядре ситуация еще хуже чем в иксах))

     
     
  • 2.11, Аноним (11), 10:21, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Надо было Hurd развивать, а не вот это вот всё.
     
     
  • 3.56, Аноним (53), 14:47, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Но к большому сожалению академические мужы оказались более тщепетмльны и медлительны, чем финский скорострел. Вышло как вышло.
     

  • 1.12, Аноним (12), 10:24, 30/09/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неужели целочисленное переполнение нельзя отследить на этапе компиляции и какой-нибудь варн показать? Вроде бы проблеме сто лет в обед, а всё равно раз за разом повторяется
     
     
  • 2.14, topin89 (ok), 10:46, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Некоторую часть можно компиляторами, ещё часть статическими анализаторами можно. Большую часть только при живом запуске на тестах. Что поделаешь, программирование на C и C++ -- это хотьба на канате над пропастью. Чуть зазевался -- и лови CVE.
     
     
  • 3.20, Денис Попов (?), 11:24, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Еще один умник. Причем здесь язык к переполнению? Лишь бы на вентилятор набросить...
     
     
  • 4.24, Аноним (24), 11:31, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, речь про работу с создаваемыми на ходу объектами. Тогда чтобы найти, нужно разобраться как работает алгоритм. ИИ может что-то и мог бы, но это пока дорого и не совсем доступно.

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

     
  • 4.28, Аноним (-), 11:35, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А при том.
    Берем какой-то безопасный язык, например ADA-Spark и смотрим их доку.
    docs.adacore.com/spark2014-docs/html/ug/en/source/overflow_modes.html
    Ого сколько тут всего интересного О_О
    Но самое главное - однозначного!
    Тут нет сишного овна типа "мы тут хз как сложить два числа, пусть компилятор думает, он же умный" с последущим UB.
     
     
  • 5.44, Аноним (52), 12:44, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Только ты забыл упомянуть что ада тормозит.
     
     
  • 6.49, Аноним (-), 14:01, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Только ты забыл упомянуть что ада тормозит.

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

     
  • 2.16, Аноним (16), 10:52, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > на этапе компиляции и какой-нибудь варн показать

    Разработчики на Rust сейчас: ты не поверишь!

     
     
  • 3.19, Аноним (12), 11:22, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что в расте? Там варн? Или не даёт скомпилировать, пока явно не защитишься от переполнения? (я не знаком с растом)
     
  • 3.21, Аноним (21), 11:27, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что на раст? Там каждое сложение проверяется на переполнение на этапе конь-эпиляции?
     
  • 3.22, Денис Попов (?), 11:29, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не поверю. Человек должен решать, т.к. иногда именно отсутствия обработки переполнения и ожидается
     
     
  • 4.34, Аноним (52), 11:55, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    За храстовиков все должен решать храст.
     
  • 4.37, Аноним (-), 12:27, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    100%
    Поэтому в языки добавили saturating_add, wrapping_add, overflowing_add, std::add_sat и другие аналогичные операции, которые будут гарантировано давать поведение, нужное разработчику в данном месте.
     
     
  • 5.48, Аноним (52), 13:42, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Языки не нужны код должны писать нейросети.
     
     
  • 6.58, Аноним (53), 14:50, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ваша профессия тем более, её должны выполнять автоматы/роботы.
     
     
  • 7.60, Аноним (52), 14:59, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нейросети должны писать код для роботов так наступит сингу... Апокалипсис.
     
  • 2.25, Аноним (-), 11:32, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Неужели целочисленное переполнение нельзя отследить на этапе компиляции и какой-нибудь варн показать?

    Так основная проблема не с самим переполнением, а с тем, что его результат напр. используется как индекс.
    И оно пишет непонятно куда, портит память, дарит рут.
    Плюс переполнение signed вообще UB, т.е. одно и тоже переполнение может на разных компиляторах, с разными флагами давать разные результат.

    В "других языках"(с) поведение для signed переполнения зафиксировано.
    А от попытки писать хз куда защищают другие механизмы.
    Плюс можно включить проверку в релизе используя опцию overflow-checks (в дебаге она и так включена, но можно выключить при желании)

     
  • 2.27, Аноним (52), 11:34, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Даже раст в продовой сборке не спасает от переполнения.  
     
     
  • 3.29, Аноним (-), 11:39, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что значит "не спасет"?. Переполнение это обычное поведение.

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

    Но по тихому сломаться и сделать CVE - от такого точно не должно быть.

     
     
  • 4.32, Аноним (12), 11:49, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А от записи за пределы буфера спасёт?
     
     
  • 5.35, Аноним (-), 12:19, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А от записи за пределы буфера спасёт?

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

     
     
  • 6.36, Аноним (12), 12:23, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Получается действительно хороший инструмент, что бы хейтеры не говорили
     
     
  • 7.43, Аноним (52), 12:43, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это не театр бнзопасТности это цирк безопасТности.
     
     
  • 8.46, Аноним (12), 12:59, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Раскрой свою мысль, если можешь, слишком уж метафорично В обсуждении выше говор... текст свёрнут, показать
     
     
  • 9.47, Аноним (52), 13:41, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Что раст создаёт большие проблемы чем якобы решает А не решает потому что без а... текст свёрнут, показать
     
     
  • 10.57, Аноним (57), 14:48, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Классно написано - сразу видно что хейтерочком Список проблем ты, разумеется, ... текст свёрнут, показать
     
     
  • 11.59, Аноним (52), 14:57, 30/09/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 4.33, Аноним (52), 11:54, 30/09/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На Си тоже самое так что раст не надобен.
     

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



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

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