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