Уязвимость в Bluetooth-стеке BlueZ, позволяющая удалённо выполнить код с правами ядра Linux

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
15-Окт-2020 12:30

Инженеры из компании Google выявили серьёзную уязвимость (CVE-2020-12351) в свободном Bluetooth-стеке BlueZ, используемом в дистрибутивах Linux и Chrome OS. Уязвимость, которой присвоено кодовое имя BleedingTooth, позволяет неавторизированному атакующему без участия пользователя организовать выполнение своего кода на уровне ядра Linux через отправку специально оформленных Bluetooth-пакетов.
Проблема может быть эксплуатирована атакующим, находящимся в пределах досягаемости Bluetooth - предварительного сопряжения не требуется, но нужно чтобы на компьютере был активен Bluetooth. Для атаки достаточно знать MAC-адрес устройства жертвы, который может быть определён путём снифинга или на некоторых устройствах вычислен на основе MAC-адреса Wi-Fi. Для проверки наличия проблемы опубликован прототип эксплоита.
Уязвимость присутствует в компонентах, выполняющих обработку пакетов L2CAP (Logical link control and adaptation protocol) на уровне ядра Linux. Через отправку специально оформленного L2CAP-пакета с дополнительными данными для канала A2MP, атакующий может добиться перезаписи области за пределами выделенной памяти, что потенциально может использоваться для создания эксплоита для выполнения произвольного кода на уровне ядра.
При указании в пакете CID, отличающемся от L2CAP_CID_SIGNALING, L2CAP_CID_CONN_LESS и L2CAP_CID_LE_SIGNALING, в BlueZ вызывается обработчик 2cap_data_channel(), который для каналов в режимах L2CAP_MODE_ERTM и L2CAP_MODE_STREAMING вызывает функцию l2cap_data_rcv(). Если контрольная сумма совпадает далее выполняется вызов фильтра каналов sk_filter(). Для пакетов с CID L2CAP_CID_A2MP канал отсутствует, поэтому для его создания вызывается функция a2mp_channel_create(), которая использует при обработке поля chan->data тип "struct amp_mgr", но тип для данного поля должен быть "struct sock".
Уязвимость проявляется начиная с ядра Linux 4.8 и, несмотря на заявления Intel, не устранена в недавно опубликованном выпуске 5.9. В дистрибутивах проблема пока остаётся неисправленной (Debian, RHEL (уязвимость подтверждена в выпусках RHEL, начиная с 7.4), SUSE, Ubuntu, Fedora). Платформа Android проблеме не подвержена, так как в ней применяется свой Bluetooth-стек Fluoride, основанный на коде проекта BlueDroid от компании Broadcom.
Мэтью Гаррет (Matthew Garrett), известный разработчик ядра Linux, в своё время получивший от Фонда СПО премию за вклад в развитие свободного ПО, утверждает, что информация в отчёте Intel неверна и ядро 5.9 не включает должных исправлений для устранения уязвимости (патчи вошли в ветку linux-next, а не в ветку 5.9). Он также выразил возмущение политикой Intel по раскрытию уязвимостей - разработчики дистрибутивов Linux до публикации отчёта не были уведомлены о проблеме и не имели возможность заранее бэкпортировать патчи для своих пакетов с ядром.
Извините, данный ресурс не поддреживается. :( Дополнительно сообщается о выявлении ещё двух уязвимостей в BlueZ:
  • CVE-2020-24490 - переполнение буфера в коде разбора пакетов HCI (hci_event.c). Удалённый атакующий через отправку широковещательных анонсов может добиться переполения буфера и выполнения кода на уровне ядра Linux. Атака возможна только на устройства, поддерживающие Bluetooth 5, в момент активности на них режима сканирования.
  • CVE-2020-12352 - утечка информации из стека при обработке пакетов A2MP. Проблема может быть использована атакующим, знающим MAC-адрес устройства, для получения данных из стека ядра, в котором потенциально может находиться конфиденциальная информация, такая как ключи для шифрования. В стеке также могут находиться указатели, поэтому проблема может использоваться для определения раскладки памяти и обхода защиты KASLR (рандомизация адресов) в эксплоитах для других уязвимостей.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_bluez, #_bluetooth
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 20-Май 23:24
Часовой пояс: UTC + 5