研究人員發(fā)現(xiàn),去年發(fā)現(xiàn)的臟牛漏洞(CVE-2016–5195)尚未被完全修復(fù)。
臟牛漏洞由競(jìng)爭(zhēng)條件引發(fā)——Linux內(nèi)核內(nèi)存子系統(tǒng)在處理COW時(shí)存在問(wèn)題。這個(gè)漏洞由Phil Oester發(fā)現(xiàn),它會(huì)導(dǎo)致攻擊者在目標(biāo)系統(tǒng)內(nèi)提權(quán)。
Linux內(nèi)核的內(nèi)存子系統(tǒng)在處理寫(xiě)入時(shí)復(fù)制(copy-on-write, COW)時(shí)產(chǎn)生了競(jìng)爭(zhēng)條件(race condition)。惡意用戶(hù)可利用此漏洞,來(lái)獲取高權(quán)限,對(duì)只讀內(nèi)存映射進(jìn)行寫(xiě)訪(fǎng)問(wèn)。
競(jìng)爭(zhēng)條件,指的是任務(wù)執(zhí)行順序異常,可導(dǎo)致應(yīng)用崩潰,或令攻擊者有機(jī)可乘,進(jìn)一步執(zhí)行其他代碼。利用這一漏洞,攻擊者可在其目標(biāo)系統(tǒng)提升權(quán)限,甚至可能獲得root權(quán)限。
漏洞同樣會(huì)影響Android,甚至能夠繞過(guò)容器。雖然Google隨后修復(fù)了漏洞,但現(xiàn)在仍有利用臟牛漏洞的攻擊。
最近的一款新型病毒發(fā)現(xiàn)于今年9月。
原來(lái)的漏洞影響的是get_user_pages函數(shù),get_user_pages函數(shù)用于獲取用戶(hù)進(jìn)程中虛擬地址的物理頁(yè)面。該漏洞能讓攻擊者寫(xiě)入只讀頁(yè)面。
Bindecy發(fā)現(xiàn)當(dāng)遇到透明巨大頁(yè)面(THP)和頁(yè)面媒體目錄(PMD)時(shí),漏洞仍然會(huì)復(fù)現(xiàn)。
雖然Linux通常使用4096個(gè)字節(jié)的長(zhǎng)頁(yè)面,但是THP頁(yè)面可以達(dá)到2MB。
研究人員發(fā)現(xiàn),處理THP的臟牛修復(fù)代碼中包含一個(gè)名為can_follow_write_pmd的函數(shù),該函數(shù)基本上將can_follow_write_pte的邏輯應(yīng)用于PMD。
除此之外,他們還介紹了漏洞的利用場(chǎng)景,發(fā)布了PoC。他們上周向內(nèi)核和相關(guān)廠(chǎng)商報(bào)告了漏洞(漏洞編號(hào)CVE-2017-1000405),目前已有補(bǔ)丁。
“這個(gè)漏洞表明補(bǔ)丁審計(jì)在安全開(kāi)發(fā)生命周期中的重要性。臟牛其他以往的案例顯示,備受關(guān)注的漏洞也有可能會(huì)得到不完整的補(bǔ)丁。這種情況不僅存在于封閉軟件,開(kāi)源軟件同樣受到影響,“研究人員總結(jié)說(shuō)。