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