研究人員在Realtek RTL8170C Wi-Fi模塊中發現多個安全漏洞,可用來劫持無線通信。
Realtek RTL8710C模塊是基于Cortex M3處理器的,RTL8710C中不包含ADC/DAC模塊、GPIO端口也少,能耗也低,廣泛用于農業、能源、游戲、健康、智能家居等設備中。近日,研究人員在Realtek RTL8170C Wi-Fi模塊中發現了多個安全漏洞。攻擊者利用這些漏洞可以在受害者設備上進行權限提升,并劫持無線網絡通信。
漏洞存在于該模塊的WPA2握手機制中,研究人員發現其握手機制易受到2個基于棧的緩沖區溢出漏洞,漏洞CVE編號為CVE-2020-27301和CVE-2020-27302。這兩個漏洞的利用都需要攻擊者知道網絡的PSK,然后攻擊者濫用其來獲取WPA2客戶端上的遠程代碼執行。
CVE-2020-27301漏洞
在WPA2 4次握手中,EAPOL幀中會產生一次密鑰交換。在密鑰交換過程中,Realtek WPA2客戶端會調用ClientEAPOLKeyRecvd來處理該數據包。而ClientEAPOLKeyRecvd會調用DecGTK()函數解密GTK (Group Temporal Key)。而在DecGTK()中,會有一個不安全的AES_UnWRAP()被調用。漏洞就存在于該函數的調用中。
漏洞影響所有使用該組件來連接誒WiFi網絡的嵌入式設備和IoT設備中。攻擊者利用該漏洞要求與受害者設備處于同一WiFi網絡下,攻擊者成功利用該漏洞可以完全控制WiFi模塊,并可能獲取嵌入式設備操作系統的root 權限。
CVE-2020-27302漏洞
CVE-2020-27302漏洞是WPA2密鑰分析中的棧溢出漏洞,CVSS 評分8.0分。研究人員通過修改開源的hostapd來實現漏洞利用。PoC中攻擊者作為AP,發送惡意的加密的GTK給通過WPA2連接的任意客戶端:
https://d3u9fi9s7csg1s.cloudfront.net/files/2021-06/Exploiting%20Realtek%20vuln%20-%20take2%20-%20edited.mp4
PoC視頻證明了該棧溢出漏洞,并最終將返回地址覆寫為無效地址(0x95f98179)。因為緩存是通過AES解密的,所以該地址是隨機地址,因為攻擊者知道所有的加密參數,因此可以精準控制返回地址。