信息來源:51CTO
前段時間,sudo被曝不要密碼就可進(jìn)行root提權(quán)的漏洞引起一片嘩然,眾多公司紛紛連夜打補(bǔ)丁來避免損失。
該風(fēng)波還沒過去多久,近期,Linux再一次被曝root提權(quán)漏洞,并且這一次的漏洞已經(jīng)潛伏了長達(dá)15年!
近日,研究人員在Linux內(nèi)核的iSCSI(小型計算機(jī)系統(tǒng)接口)子系統(tǒng)中發(fā)現(xiàn)了三個漏洞,這些漏洞可以允許具有基本用戶權(quán)限的本地攻擊者在未打補(bǔ)丁的Linux系統(tǒng)上獲得root權(quán)限。
iSCSI(小型計算機(jī)系統(tǒng)接口)定義了并行I/O總線和數(shù)據(jù)協(xié)議,用于將各種外圍設(shè)備(磁盤驅(qū)動器、磁帶驅(qū)動器、調(diào)制解調(diào)器、打印機(jī)、掃描儀、光驅(qū)、測試設(shè)備和醫(yī)療設(shè)備)連接到主機(jī)。
不過,這些安全漏洞只能在本地被利用。也就是說,攻擊者必須先利用別的漏洞或者使用其他攻擊載體來訪問易受攻擊的設(shè)備,才能進(jìn)行后續(xù)攻擊。
潛伏長達(dá)15年的漏洞
研究人員表示在2006年iSCSI內(nèi)核子系統(tǒng)的初始開發(fā)階段該漏洞就已經(jīng)存在,但直到現(xiàn)在才被發(fā)現(xiàn),當(dāng)中相隔15年。
根據(jù)研究人員的說法,這些漏洞影響了Linux的所有發(fā)行版本。但是幸運(yùn)的是,易受攻擊的scsi_transport_iscsi內(nèi)核模塊在默認(rèn)條件下不會被加載。
但是,當(dāng)攻擊者將某個版本視為目標(biāo)時,該模塊就可以被加載并且被利用來進(jìn)行root提權(quán)。
兩種情況下Linux內(nèi)核模塊會進(jìn)行加載:檢測到新硬件或者內(nèi)核函數(shù)檢測到某個模塊丟失。而后一種隱式自動加載情況更容易被濫用,并且很容易被攻擊者觸發(fā),使他們能夠增加內(nèi)核的攻擊面。
研究人員補(bǔ)充表示,在CentOS 8、RHEL 8和Fedora系統(tǒng)上,如果安裝了rdma-core包,非特權(quán)用戶可以自動加載所需模塊。
但在Debian和Ubuntu系統(tǒng)上,只有在RDMA硬件可用的情況下,rdma-core包才會自動加載所需的兩個內(nèi)核模塊。因此,該漏洞的范圍較為有限。
漏洞會導(dǎo)致本地權(quán)限提升、信息泄露和拒絕服務(wù)
此次的漏洞可以被利用來繞過一些組織漏洞的安全功能,如內(nèi)核地址空間布局隨機(jī)化(KASLR)、主管模式執(zhí)行保護(hù)(SMEP)、主管模式訪問防止(SMAP)和內(nèi)核頁表隔離(KPTI)。
同時,這三個漏洞可能導(dǎo)致本地權(quán)限提升:
-
CVE-2021-27365:堆緩沖區(qū)溢出(本地權(quán)限提升、信息泄露、拒絕服務(wù))。
-
該漏洞是通過將iSCSI字符串屬性設(shè)置為大于一頁的值,然后試圖讀取它從而觸發(fā)的。
-
更具體地說,一個無權(quán)限的用戶可以向iSCSI子系統(tǒng)(在drivers/scsi/scsi_transport_iscsi.c中)發(fā)送netlink消息,該子系統(tǒng)通過drivers/scsi/libiscsi.c中的helper函數(shù)設(shè)置與iSCSI連接相關(guān)的屬性,如主機(jī)名、用戶名等,這些屬性的大小僅受netlink消息的最大長度限制(根據(jù)處理消息的具體代碼,可以是232或216)。
-
CVE-2021-27363:內(nèi)核指針泄露(信息泄露)。
-
該漏洞可以用來確定iscsi_transport結(jié)構(gòu)的地址。
-
CVE-2021-27364:越界讀取(信息泄露,拒絕服務(wù))。
-
與第一個漏洞類似,一個無權(quán)限的用戶可以制作指定緩沖區(qū)大小的網(wǎng)鏈消息,而驅(qū)動程序無法驗證,導(dǎo)致可控的越界讀取。
此外,這三個漏洞還可能導(dǎo)致數(shù)據(jù)泄露,并可能被利用來觸發(fā)拒絕服務(wù)條件。
-
由于堆溢出的非確定性,第一個漏洞可以作為一個不可靠的本地DoS。
-
然而,當(dāng)與信息泄露相結(jié)合時,該漏洞可以進(jìn)一步被利用為LPE,允許攻擊者從非特權(quán)用戶帳戶升級到root。并且這個漏洞也可以用來泄露內(nèi)核內(nèi)存。
-
第二個漏洞(內(nèi)核指針泄露)影響較小,只能作為潛在的信息泄露。
-
第三個漏洞(越界讀取)的功能也僅限于作為潛在的信息泄露,甚至是不可靠的本地DoS。
以上三個漏洞都在5.11.4、5.10.21、5.4.103、4.19.179、4.14.224、4.9.260和4.4.260更新中進(jìn)行了修補(bǔ),修補(bǔ)程序在3月7日開始在主線Linux內(nèi)核中提供。對于EOL不支持的內(nèi)核版本,如3.x和2.6.23,將不會發(fā)布補(bǔ)丁。
如果用戶已經(jīng)安裝了其中一個Linux內(nèi)核版本,則其設(shè)備不會被利用這些漏洞進(jìn)行攻擊。