Уязвимости в драйверах к WiFi-чипам Broadcom, позволяющие удалённо атаковать систему
19 апреля 2019 года
В драйверах для беспроводных чипов 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.
В драйверах уязвимости проявляются как в проприетарном драйвере 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 байта.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.