Intel Wi-Fi驅動漏洞分析
發布時間 2021-04-27Intel 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-0557 | AC 7265 Rev D、AC 3168、AC 8265和AC8260 | Intel PROSet/Wireless WiFi Software 21.70之前版本 |
CVE-2020-0558 | AC8265 | Intel 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的長度大于目標緩沖區的長度時,會導致緩沖區溢出。函數調用圖如下所示:
2、問題代碼
調用parse_ie函數從數據幀中取出ssid的TLV結構,并調用memcpy_s函數將ssid的內容復制到目標緩沖區。在調用memcpy_s函數的時候,錯誤地使用ssid的length作為數據復制長度,當ssid的長度大于目標緩沖區的長度時,會導致緩沖區溢出。在下圖中,攻擊者可以控制*(v8+1)的值,可以拷貝超長的數據復制到目標地址中,從而導致緩沖區溢出。如下圖所示:
3、漏洞修復
新版本的代碼中使用osalMemoryCopy函數替代了原來的memcpy_s函數,另外把SSID拷貝的最大長度強制設為32字節,這樣就避免了緩存區溢出的問題。如下圖所示:
CVE-2020-0557漏洞分析
1、漏洞原理
當AP熱點處理AssocReq時,會調用prvhPanClientSaveAssocResp函數處理AssocReq幀中的數據,其中在函數中會調用prvGoVifClientAssocStoreSupportedChannels函數來處理及保存請求端通道信息,這其中prvGoVifClientAssocStoreSupportedChannels函數會循環調用utilRegulatoryClassToChannelList來處理RegulatoryClass(管制要求)信息。由于在循環處理沒有考慮目標的偏移是否越界,當AP熱點接收到AssocReq數據幀中RegulatoryClass信息單元有多個信道數據時會導致越界寫。函數調用圖如下圖所示:
2、問題代碼
prvGoVifClientAssocStoreSupportedChannels函數,如下圖所示:
3、漏洞修復
在新版本 增進了對當前index的判斷,如果index大于255則退出循環。如下圖所示:
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安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。