Linux內(nèi)核存在缺陷發(fā)行陷困境
Linux內(nèi)核已經(jīng)修復(fù)了本地特權(quán)esclation缺陷,但是幾個(gè)上游分發(fā)版本例如Red Hat,Canonical和Debian發(fā)行版尚未發(fā)布更新。管理員應(yīng)計(jì)劃減輕Linux服務(wù)器和工作站本身的漏洞,并監(jiān)控其更新計(jì)劃的發(fā)布。
內(nèi)核缺陷仍存在
在Linux內(nèi)核4.10.1(CVE-2017-2636)的n_hdlc驅(qū)動(dòng)程序(drivers / tty / n_hdlc.c)中的競(jìng)爭(zhēng)條件缺陷可能導(dǎo)致在訪問(wèn)n_hdlc.tbuf時(shí)n_hdlc_release()出現(xiàn)雙重錯(cuò)誤,這是俄羅斯的技術(shù)研究員Alexander Popov發(fā)現(xiàn)和報(bào)告的缺陷。本地?zé)o特權(quán)用戶能夠在tty設(shè)備上設(shè)置HDLC線路規(guī)則,從而利用此缺陷獲得受影響系統(tǒng)的更多權(quán)限或?qū)е戮芙^服務(wù)條件。
該漏洞在常見(jiàn)漏洞評(píng)分系統(tǒng)(CVSS)3.0下的基本分?jǐn)?shù)為7.8,不需要由任何用戶交互觸發(fā),攻擊復(fù)雜性被認(rèn)為較低,利用這個(gè)缺陷不需要在目標(biāo)系統(tǒng)中攻擊專門(mén)的硬件或外設(shè)。在CVSS下,該漏洞被視為具有較高嚴(yán)重性。
該補(bǔ)丁已于2月28日發(fā)送到Linux內(nèi)核,并且新版本的內(nèi)核在3月7日已經(jīng)發(fā)布了,所有版本的Linux內(nèi)核(直到4.10.1)都被視為有漏洞。
該漏洞將影響Linux服務(wù)器和工作站以及虛擬機(jī),但大多數(shù)容器不受影響。開(kāi)源安全公司Black Duck Software的Patrick Carey說(shuō),由于Docker上的ioctl設(shè)置,這個(gè)問(wèn)題不會(huì)在容器內(nèi)執(zhí)行。顯然,如果你有權(quán)訪問(wèn)容器主機(jī),一切只能聽(tīng)天由命了。
等待補(bǔ)丁
紅帽已將此問(wèn)題評(píng)為“高”嚴(yán)重性,并承諾在將來(lái)的更新中會(huì)修復(fù)該錯(cuò)誤。該問(wèn)題影響Red Hat Enterprise MRG 2附帶的實(shí)時(shí)內(nèi)核包,Red Hat Enterprise Linux 7附帶的kernel-rt包以及Red Hat Enterprise Linux 5/6/7中的內(nèi)核包,它不影響Red Hat Enterprise Linux 5附帶的Linux內(nèi)核包。
Canonical也將這個(gè)問(wèn)題評(píng)為高嚴(yán)重性,因?yàn)樗蠻buntu版本都會(huì)受到影響,公司已經(jīng)發(fā)布了針對(duì)Ubuntu Linux 12.04 LTS,14.04 LTS,Ubuntu 16.04 LTS(Xenial Xerus) 和Ubuntu 16.10(Yakket Yak)的修補(bǔ)程序。Ubuntu Core 15.04和Ubuntu Linux 17.04(Zesty Zapus)的更新仍在等待中。 Canonical已經(jīng)更新了一些內(nèi)核包,例如linux-ti-omap4包(用于12.04 LTS)和linux-gke(16.04 LTS),但不計(jì)劃更新其他包,例如linux-maguro包(用于14.04 LTS)。修復(fù)仍然需要納入一些其他軟件包如對(duì)應(yīng)14.04 LTS的linux-lts-vivid 和17.04的linux-rapi2。管理員應(yīng)參考Canonical的完整列表以確定其內(nèi)核和分發(fā)狀態(tài)。
用于sparc,s / 390,powerpc,mips,ia-64,ua-32,arm,amd64的各種Debian Linux 6.0軟件包,Debian wheezy 3.2.78-1,jessie 3.16.39-1中的Linux內(nèi)核, .13-1是比較脆弱的。 最新版本的Debian jessie,3.16.39-1 + deb8u2和wheezy,3.2.86-1已經(jīng)有固定的內(nèi)核模塊。
Linux管理員應(yīng)該做些什么呢?
在更新的內(nèi)核可用之前,Linux管理員可以通過(guò)手動(dòng)防止內(nèi)核加載來(lái)緩解此漏洞。Then_hdlc內(nèi)核模塊通常會(huì)在應(yīng)用程序嘗試從用戶空間使用HDLC線路規(guī)則時(shí)自動(dòng)加載,但可以使用系統(tǒng)范圍的modprob規(guī)則阻止。以root身份運(yùn)行
- #echo“install n_hdlc / bin / true”>> /etc/modprobe.d/disable-n_hdlc.conf
將防止意外或有意加載模塊。如果n_hdlc模塊已加載,則需要重新啟動(dòng)系統(tǒng)。紅帽產(chǎn)品安全方面認(rèn)為,這是一個(gè)防止意外加載模塊的可靠方法。
在內(nèi)核配置中具有CONFIG_N_HDLC = m的Linux發(fā)行版都可能受到影響,因?yàn)樗褂靡资芄舻尿?qū)動(dòng)程序。Popov在使用無(wú)監(jiān)督的Linux系統(tǒng)調(diào)用fuzzing工具syzkaller調(diào)查可疑內(nèi)核崩潰時(shí)發(fā)現(xiàn)了該錯(cuò)誤。 該漏洞與以下事實(shí)有關(guān):n_hdlc使用自制的單鏈表作為數(shù)據(jù)緩沖區(qū),并使用n_hdlc.tbuf指針在發(fā)生錯(cuò)誤后重新發(fā)送緩沖區(qū)。如果數(shù)據(jù)緩沖區(qū)由于某些原因無(wú)法發(fā)送,則地址將保存在n_hdlc.tbuf中,緩沖區(qū)是下一次調(diào)用hdlc_send_frames()時(shí)首次發(fā)送的。flux_tx_queue()和hdlc_send_frames()會(huì)將緩沖區(qū)放入tx_free_buf_list兩次,導(dǎo)致雙重錯(cuò)誤。
該漏洞存在于廣泛使用的開(kāi)放源代碼組件中,但社區(qū)和組織也在積極解決安全問(wèn)題,廣大Linux用戶更要密切關(guān)注Linux內(nèi)核的修復(fù)情況。