數(shù)百萬(wàn)路由設(shè)備因KCodes NetUSB漏洞面臨RCE攻擊威脅
日前,網(wǎng)絡(luò)安全初創(chuàng)企業(yè)SentinelLabs的研究人員發(fā)現(xiàn),KCodes NetUSB內(nèi)核模塊曝出了一個(gè)名為CVE-2021-45388的高危遠(yuǎn)程代碼執(zhí)行(RCE)漏洞,多家廠商的數(shù)百萬(wàn)路由器設(shè)備使用該內(nèi)核模塊。一旦該漏洞被成功利用,遠(yuǎn)程威脅分子就可以在內(nèi)核中執(zhí)行代碼。
NetUSB是什么?
一些路由器廠商在設(shè)備上添加了USB端口,好讓用戶可以共享聯(lián)網(wǎng)的打印機(jī)和USB驅(qū)動(dòng)器。NetUSB是KCodes開(kāi)發(fā)的一種內(nèi)核模塊連接解決方案,允許網(wǎng)絡(luò)中的遠(yuǎn)程設(shè)備與直接插入到路由器的USB設(shè)備進(jìn)行聯(lián)系。
圖1 NetUSB示意圖(圖片來(lái)源:KCodes)
SentinelLabs在該內(nèi)核模塊中發(fā)現(xiàn)了一個(gè)易受攻擊的代碼段,該代碼段沒(méi)有驗(yàn)證內(nèi)核內(nèi)存分配調(diào)用的大小值,從而導(dǎo)致了整數(shù)溢出。“SoftwareBus_fillBuf”函數(shù)可能隨后將這個(gè)新區(qū)域用于惡意越界寫(xiě)入(out-of-bounds write),寫(xiě)入來(lái)自由攻擊者控制的網(wǎng)絡(luò)套接字的數(shù)據(jù)。
當(dāng)遇到如下所述限制時(shí),該漏洞可能很難被利用:分配的對(duì)象始終位于內(nèi)核堆的kmalloc-32 slab中,該結(jié)構(gòu)的大小必須小于32個(gè)字節(jié)才能裝得下;所提供的大小僅用作最大接收大小,而不是精確的大小;該結(jié)構(gòu)必須可以從遠(yuǎn)處來(lái)噴射;該結(jié)構(gòu)必須擁有可以被寫(xiě)入覆蓋的部分,那樣才能用作目標(biāo)(比如Type-Length-Value結(jié)構(gòu)或指針)。
然而,易受攻擊的NetUSB模塊有16秒的超時(shí)時(shí)間來(lái)接收請(qǐng)求,因而可以更靈活地利用設(shè)備。SentinelLabs在其報(bào)告中警告:“雖然這些限制使威脅分子很難編寫(xiě)利用該漏洞的代碼或工具,但我們認(rèn)為這并非不可能,因此使用Wi-Fi路由器的人可能需要更新路由器固件。”
漏洞影響及應(yīng)對(duì)
據(jù)了解,目前多家一線路由器廠商都使用了易受攻擊的NetUSB模塊,包括網(wǎng)件、普聯(lián)、Tenda、EDiMAX、友訊和西部數(shù)據(jù)。目前尚不清楚哪些型號(hào)受CVE-2021-45388的影響,但一般建議使用廠商積極支持的產(chǎn)品,它們會(huì)定期收到安全固件更新。
由于該漏洞影響眾多廠商,SentinelLabs在2021年9月9日先向KCodes發(fā)出了警報(bào),后來(lái)在2021年10月4日提供了PoC(概念證明)腳本,以驗(yàn)證當(dāng)天發(fā)布的補(bǔ)丁。相關(guān)設(shè)備廠商在11月收到了告知,固件更新則定于2021年12月陸續(xù)發(fā)布。其中,網(wǎng)件公司在2021年12月14日發(fā)布了安全更新,以修補(bǔ)受影響的產(chǎn)品。
圖2 網(wǎng)件公司采用的修復(fù)方法
據(jù)網(wǎng)件公司2021年12月20日發(fā)布的安全公告顯示,其已修復(fù)的路由產(chǎn)品包括D7800固件版本1.0.1.68、R6400v2固件版本1.0.4.122、R6700v3固件版本1.0.4.122。同時(shí),網(wǎng)件公司實(shí)施的解決辦法是向“supplied size”(所提供的大小)函數(shù)添加新的大小檢查,防止越界寫(xiě)入。
【本文是51CTO專欄作者“安全牛”的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)通過(guò)安全牛(微信公眾號(hào)id:gooann-sectv)獲取授權(quán)】
文章來(lái)源:
https://www.bleepingcomputer.com/news/security/kcodes-netusb-bug-exposes-millions-of-routers-to-rce-attacks/