尊龙凯官网入口ADLab:博通Wi-Fi驱动多个清静误差忠言

宣布时间 2019-04-21

博通是全球无线装备的主要供应商之一,博通的43系列的wifi芯片被普遍应用于智能手机、条记本电脑、智能电视和物联网装备 。克日,US-CERT宣布了多个博通wi-Fi芯片驱动的清静预警(CVE-2019-9500、CVE-2019-9501、CVE-2019-9502、CVE-2019-9503) 。


这四个误差划分是博通wl驱动中的两个堆溢出误差(CVE-2019-9501、CVE-2019-9502),开源的brcmfmac驱动中的数据帧验证绕过误差(CVE-2019-9503)及堆溢出误差(CVE-2019-9500) 。未经授权的攻击者通过远程发送恶意的wifi包,在最严重的情形下,可以在受影响系统中执行恣意代码 。由于误差使用条件的受限,通常情形下,这些误差可以造成拒绝服务 。



博通芯片驱动简介


博通WIFI芯片43xxx驱动程序集分为开源和专有两类 。


开源

b43(Linux)

brcmsmac(SoftMAC / Linux)

brcmfmac(FullMAC / Linux)

bcmdhd(FullMAC /  Android)

专有

broadcom-sta(wl) ( SoftMAC  && FullMAC / Linux)


尊龙凯时 - 人生就是搏!


图1 博通芯片驱动及应用系统



误差剖析


brcmfmac驱动两个误差(CVE-2019-9503、CVE-2019-9500)


博通Wi-Fi芯片与主机的输入输出接口接纳USB,SDIO和PCIe三种Bus总线方法 。在软件层面,驱动和主机的数据通讯有两种方法,一种是IOCTRL,一种是Event事务通知 。Wi-Fi芯片使用固件事务来通知主机差别的事务:扫描效果、关联/扫除关联、身份验证等 。


CVE-2019-9503


当brcmfmac驱动从远端泉源吸收到一个固件事务数据帧时,is_wlc_event_frame函数将被挪用,该函数用于判断Event的数据帧 。若是驱动从Host侧接受到该固件事务数据帧时,将会触发该判断机制 。该函数保存误差,使适当使用USB的BUS接口(如外置USB wifi网卡)时,通过结构bcm_hdr.subtype>=0,该判断机制可以被绕过,从而造成远端泉源的不法数据帧可以被后续流程处置惩罚 。

尊龙凯时 - 人生就是搏!


图2 is_wlc_event_frame函数问题示意


CVE-2019-9500


brcmf_wowl_nd_results函数保存堆溢出误差 。若是WLAN设置了叫醒功效,该函数将被用于重组事务数据帧 。当驱动收到一个恶意结构的事务数据帧时,将会触发该误差 。802.11协议划定eSSID字段不可大于32字节,当攻击者通过远程触发固件事务,事务帧中的SSID的长度大于32字节时,将会触发堆溢出误差 。

尊龙凯时 - 人生就是搏!


图3 brcmf_wowl_nd_results函数问题示意


博通wl驱动中两个误差(CVE-2019-9501、 CVE-2019-9502)


CVE-2019-9501及 CVE-2019-9502是博通wl驱动中两个堆溢出误差,当装备会见AP热门时,在四次握手交互历程中的第三步,在驱动剖析EAPOL新闻时,将会触发这两个堆溢出误差 。


尊龙凯时 - 人生就是搏!


图4 wl驱动误差示意图


CVE-2019-9501


AP向Station发送的EAPOL M3新闻中,若是vendor information字段长度大于32字节时,将会在wlc_wpa_sup_eapol函数触发堆溢出误差 。


CVE-2019-9502


AP向Station发送的EAPOL M3新闻中,若是vendor information 字段长度大于164字节时,将会在wlc_wpa_plumb_gtk函数触发堆溢出误差 。

尊龙凯时 - 人生就是搏!


图5 wlc_wpa_plumb_gtk函数问题示意 


受影响产品


博通公司


博通公司没有提供受影响产品信息 。


Synology公司


Synology公司的RT1900ac产品受影响 。该误差在RT1900ac产品稚瘳认不被触发,当产品可以由管理员设置启用某项设置时,才会受影响 。因此,Synology公司以为RT1900ac中该误差有一定的局限性,只有在特定的情形下才华触发 。


Apple公司


Apple公司的macOS Sierra 10.12.6、macOS High Sierra 10.13.6、 macOS Mojave 10.14.3产品受影响 。


解决计划


Apple公司的brcmfmac驱动的误差已修复,用户可以更新相关的补丁,完成修复事情 。
博通公司修复了Linux内核brcmfmac驱动中的CVE-2019-9503及CVE-2019-9500两个误差,用户可以更新相关的补丁,完成修复事情 。
使用可信的WI-FI网络,特殊是不要在公共场合毗连不清静的wifi热门 。


参考链接



1.https://blog.quarkslab.com/reverse-engineering-broadcom-wireless-chipsets.html
2.https://kb.cert.org/vuls/id/166939/
3.https://support.apple.com/en-us/HT209600
4.https://www.synology.cn/zh-cn/security/advisory/Synology_SA_19_18
5.https://git.kernel.org/linus/a4176ec356c73a46c07c181c6d04039fafa34a9f
6.https://git.kernel.org/linus/1b5e2423164b3670e8bc9174e4762d297990deff