В драйверах для беспроводных чипов Broadcom выявлено (https://blog.quarkslab.com/reverse-engineering-broadcom-wire...) четыре уязвимости (https://www.kb.cert.org/vuls/id/166939/). В простейшем случае уязвимости могут использоваться для удалённого вызова отказа в обслуживании, но не исключаются и сценарии, при которых могут быть разработаны эксплоиты, позволяющие неаутентифицированному злоумышленнику выполнить свой код с привилегиями ядра Linux через отправку специальным образом оформленных пакетов.
Проблемы были выявлены в ходе обратного инжиниринга прошивок Broadcom. Подверженные уязвимостям чипы широко используются в ноутбуках, смартфонах и различных потребительских устройствах, от SmartTV до устройств интернета вещей. В частности, чипы Broadcom применяются в смартфонах таких производителей, как Apple, Samsumg и Huawei. Примечательно, что компания Broadcom была уведомлена об уязвимостях ещё в сентябре 2018 года, но на скоординированный с производителями оборудования выпуск исправлений понадобилось около 7 месяцев.
Две уязвимости затрагивают внутренние прошивки и потенциально позволяют выполнить код в окружении используемой в чипах Broadcom операционной системы, что позволяет атаковать окружения не использующие Linux (например, подтверждена возможность совершения атаки на устройства Apple, CVE-2019-8564 (https://support.apple.com/en-us/HT209600)). Напомним, что некоторые Wi-Fi чипы Broadcom представляют собой специализированный процессор (ARM Cortex R4 или M3), на котором выполнятся подобие своей операционной системы с реализаций своего беспроводного стека 802.11 (FullMAC). В таких чипах драйвер обеспечивает взаимодействие основной системы с прошивкой Wi-Fi чипа. Для получения полного контроля за основной системой после компрометации FullMAC предлагается использовать дополнительные уязвимости или на некоторых чипах воспользоваться наличием полного доступа к системной памяти. В чипах с SoftMAC беспроводной стек 802.11 реализован на стороне драйвера и выполняется с применением системного CPU.
В драйверах уязвимости проявляются как в проприетарном драйвере wl (SoftMAC и FullMAC), так и в открытом brcmfmac (FullMAC). В wl выявлено два переполнения буфера, эксплуатируемые при передаче точкой доступа специально оформленных сообщений EAPOL в процессе согласования соединения (атака может быть совершена при подключении к вредоносной точке доступа). В случае чипа с SoftMAC уязвимости приводят к компрометации ядра системы, а в случае FullMAC код может быть выполнен на стороне прошивки. В brcmfmac присутствуют переполнение буфера и ошибка проверки обрабатываемых кадров, эксплуатируемые через отправку управляющих кадров. В ядре Linux проблемы в драйвере brcmfmac были (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...) устранены (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...) в феврале.
Выявленные уязвимости:
- 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 байта.
URL: https://blog.quarkslab.com/reverse-engineering-broadcom-wire...
Новость: https://www.opennet.ru/opennews/art.shtml?num=50539