Уязвимости в драйверах к WiFi-чипам Broadcom, позволяющие удалённо атаковать систему

В драйверах для беспроводных чипов Broadcom выявлено четыре уязвимости. В простейшем случае уязвимости могут использоваться для удалённого вызова отказа в обслуживании, но не исключаются и сценарии, при которых могут быть разработаны эксплоиты, позволяющие неаутентифицированному злоумышленнику выполнить свой код с привилегиями ядра Linux через отправку специальным образом оформленных пакетов.

Проблемы были выявлены в ходе обратного инжиниринга прошивок Broadcom. Подверженные уязвимостям чипы широко используются в ноутбуках, смартфонах и различных потребительских устройствах, от SmartTV до устройств интернета вещей. В частности, чипы Broadcom применяются в смартфонах таких производителей, как Apple, Samsung и Huawei. Примечательно, что компания Broadcom была уведомлена об уязвимостях ещё в сентябре 2018 года, но на скоординированный с производителями оборудования выпуск исправлений понадобилось около 7 месяцев.

Две уязвимости затрагивают внутренние прошивки и потенциально позволяют выполнить код в окружении используемой в чипах Broadcom операционной системы, что позволяет атаковать окружения не использующие Linux (например, подтверждена возможность совершения атаки на устройства Apple, CVE-2019-8564). Напомним, что некоторые Wi-Fi чипы Broadcom представляют собой специализированный процессор (ARM Cortex R4 или M3), на котором выполнятся подобие своей операционной системы с реализаций своего беспроводного стека 802.11 (FullMAC). В таких чипах драйвер обеспечивает взаимодействие основной системы с прошивкой Wi-Fi чипа. Для получения полного контроля за основной системой после компрометации FullMAC предлагается использовать дополнительные уязвимости или на некоторых чипах воспользоваться наличием полного доступа к системной памяти. В чипах с SoftMAC беспроводной стек 802.11 реализован на стороне драйвера и выполняется с применением системного CPU.

Уязвимости в драйверах к WiFi-чипам Broadcom, позволяющие удалённо атаковать систему
В драйверах уязвимости проявляются как в проприетарном драйвере wl (SoftMAC и FullMAC), так и в открытом brcmfmac (FullMAC). В драйвере wl выявлено два переполнения буфера, эксплуатируемые при передаче точкой доступа специально оформленных сообщений EAPOL в процессе согласования соединения (атака может быть совершена при подключении к вредоносной точке доступа). В случае чипа с SoftMAC уязвимости приводят к компрометации ядра системы, а в случае FullMAC код может быть выполнен на стороне прошивки. В brcmfmac присутствуют переполнение буфера и ошибка проверки обрабатываемых кадров, эксплуатируемые через отправку управляющих кадров. В ядре Linux проблемы в драйвере brcmfmac были устранены в феврале.

Выявленные уязвимости

  • CVE-2019-9503 — некорректное поведение драйвера brcmfmac при обработке управляющих кадров, используемых для взаимодействия с прошивкой. Если кадр с событием прошивки поступает из внешнего источника драйвер его отбрасывает, но в случае если событие получено по внутренней шине, кадр пропускается. Проблема в том, что через внутреннюю шину передаются события от устройств, использующих USB, что позволяет атакующим успешно передавать управляющие прошивкой кадры в случае использования беспроводных адаптеров с интерфейсом USB;
  • CVE-2019-9500 — при включении функции «Wake-up on Wireless LAN» можно вызвать переполнение кучи в драйвере brcmfmac (функция brcmf_wowl_nd_results) через отправку специально изменённого управляющего кадра. Данная уязвимость может использоваться для организации выполнения кода в основной системе после компрометации чипа или в комбинации с уязвимостью CVE-2019-9503 для обхода проверок в случае удалённой отправки управляющего кадра;
  • CVE-2019-9501 — переполнение буфера в драйвере wl (функция wlc_wpa_sup_eapol), возникающее при обработке сообщений, содержимое поля с информацией о производителе в которых превышает 32 байта;
  • CVE-2019-9502 — переполнение буфера в драйвере wl (функция wlc_wpa_plumb_gtk), возникающее при обработке сообщений, содержимое поля с информацией о производителе в которых превышает 164 байта.

Источник: OpenNET

Добавить комментарий