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