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