2019年07月20日,Linux正式修復(fù)了一個(gè)本地內(nèi)核提權(quán)漏洞。通過此漏洞,攻擊者可將普通權(quán)限用戶提升為Root權(quán)限。
漏洞描述
當(dāng)調(diào)用PTRACE_TRACEME時(shí),ptrace_link函數(shù)將獲得對(duì)父進(jìn)程憑據(jù)的RCU引用,然后將該指針指向get_cred函數(shù)。但是,對(duì)象struct cred的生存周期規(guī)則不允許無(wú)條件地將RCU引用轉(zhuǎn)換為穩(wěn)定引用。
PTRACE_TRACEME獲取父進(jìn)程的憑證,使其能夠像父進(jìn)程一樣執(zhí)行父進(jìn)程能夠執(zhí)行的各種操作。如果惡意低權(quán)限子進(jìn)程使用PTRACE_TRACEME并且該子進(jìn)程的父進(jìn)程具有高權(quán)限,該子進(jìn)程可獲取其父進(jìn)程的控制權(quán)并且使用其父進(jìn)程的權(quán)限調(diào)用execve函數(shù)創(chuàng)建一個(gè)新的高權(quán)限進(jìn)程。
漏洞復(fù)現(xiàn)
網(wǎng)上已有針對(duì)該漏洞的高可利用性的exploit,利用效果如下圖:
影響范圍
目前受影響的Linux內(nèi)核版本:
Linux Kernel < 5.1.17
修復(fù)建議
1、補(bǔ)丁修復(fù)鏈接:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee
2、升級(jí)Linux內(nèi)核至最新版。
參考鏈接
https://github.com/torvalds/linux/commit/6994eefb0053799d2e07cd140df6c2ea106c41ee
相關(guān)文章教程推薦:服務(wù)器安全教程