由于特定情況下創(chuàng)建文件時(shí)的權(quán)限檢查bug,Ubuntu操作系統(tǒng)曝本地權(quán)限提升漏洞,安全研究員Philip Pettersson發(fā)現(xiàn)了此漏洞,并將該漏洞報(bào)告給維護(hù)Ubuntu官方。該漏洞存在于Ubuntu 12.04、14.04、14.10、15.04版本中,目前該漏洞已得到修復(fù)。如果本地攻擊者能夠利用這個(gè)安全漏洞,那么他就可以獲取目標(biāo)計(jì)算機(jī)最高權(quán)限。
此漏洞本身存在于Ubuntu系統(tǒng)中的overlayfs組件,其中overlayfs被設(shè)計(jì)成一個(gè)可寫的文件系統(tǒng),以防潛在的文件系統(tǒng)只有只讀屬性。報(bào)告中提道:
“當(dāng)在上層文件系統(tǒng)目錄中創(chuàng)建新文件時(shí),overlayfs文件系統(tǒng)未能正確檢查此文件的權(quán)限。而這一缺陷則可以被內(nèi)核中沒(méi)有權(quán)限的進(jìn)程所利用,只要滿足該進(jìn)程CONFIG_USER_NS=y及overlayfs所擁有得FS_USERNS_MOUNT標(biāo)志,即允許掛載非特權(quán)掛載空間的overlayfs。而這一條件是Ubuntu 12.04、14.04、14.10和15.04版本中的默認(rèn)配置,所以這些版本的Ubuntu系統(tǒng)都受此漏洞影響。
ovl_copy_up_ *函數(shù)未能正確檢查用戶是否有權(quán)限向upperdir目錄寫入文件。而該函數(shù)唯一檢查的是被修改文件的擁有者是否擁有向upperdir目錄寫入文件的權(quán)限。此外,當(dāng)從lowerdir目錄復(fù)制一個(gè)文件時(shí),同時(shí)也就復(fù)制了文件元數(shù)據(jù),而并非文件屬性,例如文件擁有者被修改為了觸發(fā)copy_up_*程序的用戶。”
漏洞POC
Pettersson已經(jīng)開(kāi)發(fā)并發(fā)布了Ubuntu中此漏洞的一個(gè)POC利用代碼,它能夠?yàn)橛脩籼峁┮粋€(gè)root shell。他介紹道,攻擊者還能夠列出機(jī)器上任何目錄的內(nèi)容,而無(wú)需考慮權(quán)限問(wèn)題。