Intel Wi-Fi驱动缝隙分析

颁布功夫 2021-04-27

Intel Wi-Fi芯片宽泛利用于幼我笔记本电脑产品,如ThinkPad、Dell笔记本等。2020年,ZDI组织披露了Intel无线网卡Windows驱动法式中存在CVE-2020-0557 和 CVE-2020-0558缝隙。其中,CVE-2020-0557的CVSS v3.0评分为 8.1 分,CVE-2020-0558的CVSS v3.0评分为 8.2 分。通过这两个缝隙,攻击者能够在受害者电脑中远程执行肆意代码。


缝隙编号影响的无线网卡影响驱动
CVE-2020-0557AC 7265 Rev D、AC 3168、AC 8265和AC8260Intel PROSet/Wireless WiFi Software 21.70之前版本
CVE-2020-0558AC8265Intel PROSet/Wireless WiFi Software 21.70之前版本


CVE-2020-0558缝隙分析


1、缝隙道理

当AP热点处置AssocReq时,会挪用prvhPanClientSaveAssocResp函数保留AssocReq帧中SSID的值,在处置SSID的过程中,会挪用parse_ie函数从数据帧中取出ssid的TLV结构,并挪用memcpy_s函数将ssid的内容复造到指标缓冲区。在挪用memcpy_s函数的时辰,谬误地使用ssid的length作为数据复造长度,当ssid的长度大于指标缓冲区的长度时,会导致缓冲区溢出。函数挪用图如下所示:


1.jpg


2、问题代码

挪用parse_ie函数从数据帧中取出ssid的TLV结构,并挪用memcpy_s函数将ssid的内容复造到指标缓冲区。在挪用memcpy_s函数的时辰,谬误地使用ssid的length作为数据复造长度,当ssid的长度大于指标缓冲区的长度时,会导致缓冲区溢出。鄙人图中,攻击者能够节造*(v8+1)的值,能够拷贝超长的数据复造到指标地址中,从而导致缓冲区溢出。如下图所示:


2.jpg


3、缝隙建复

新版本的代码中使用osalMemoryCopy函数代替了原来的memcpy_s函数,另表把SSID拷贝的最大长度强造设为32字节,这样就预防了缓存区溢出的问题。如下图所示:


3.jpg


CVE-2020-0557缝隙分析


1、缝隙道理

当AP热点处置AssocReq时,会挪用prvhPanClientSaveAssocResp函数处置AssocReq帧中的数据,其中在函数中会挪用prvGoVifClientAssocStoreSupportedChannels函数来处置及保留要求端通路信息,这其中prvGoVifClientAssocStoreSupportedChannels函数会循环挪用utilRegulatoryClassToChannelList来处置RegulatoryClass(管造要求)信息。由于在循环处置没有思考指标的偏移是否越界,当AP热点接管到AssocReq数据帧中RegulatoryClass信息单元有多个信路数据时会导致越界写。函数挪用图如下图所示:


4.jpg



2、问题代码

prvGoVifClientAssocStoreSupportedChannels函数,如下图所示:

 

5.jpg

6.jpg


3、缝隙建复

在新版本 推进了对当前index的判断,若是index大于255则退出循环。如下图所示:


7.jpg


 4、缝隙验证



参考链接:

【1】https://www.thezdi.com/blog/2020/5/4/analyzing-a-trio-of-remote-code-execution-bugs-in-intel-wireless-adapters


宝运莱官方网站积极防御尝试室(ADLab)


ADLab成立于1999年,是中国安全行业最早成立的攻防技术钻研尝试室之一,微软MAPP打算主题成员,“黑雀攻击”概想首推者。截止目前,ADLab已通过CVE累计颁布安全缝隙近1100个,通过 CNVD/CNNVD累计颁布安全缝隙1000余个,持续维持国际网络安全领域一流水准。尝试室钻研方向涵盖操作系统与利用系统安全钻延注智能终端安全钻延注物联网智能设备安全钻延注Web安全钻延注工控系统安全钻延注云安全钻研。钻研成就利用于产品主题技术钻延注国度沉点科技项目攻关、专业安全服务等。


adlab.jpg