在2019年07月20日Linux官方正式修正了一個本地核心提權漏洞。攻擊者可以透過此漏洞將普通權限使用者提升為Root權限。
(推薦教學:網站安全教學)
漏洞描述
當呼叫PTRACE_TRACEME時,ptrace_link函數將獲得對父程式憑證的RCU引用,然後將該指標指向get_cred函數。但是,物件struct cred的生存週期規則不允許無條件地將RCU引用轉換為穩定引用。
PTRACE_TRACEME取得父行程的憑證,使其能夠像父行程一樣執行父行程能夠執行的各種操作。如果惡意低權限子進程使用PTRACE_TRACEME且該子進程的父進程具有高權限,則該子進程可取得其父進程的控制權並且使用其父進程的權限呼叫execve函數建立一個新的高權限進程。攻擊者最終控制具有高權限的兩個進程ptrace關係,可以被用來ptrace。
suid二進位檔案並取得root權限。
漏洞復現
網路上已有針對該漏洞的高可利用性的exploit,利用效果如下圖:
影響範圍
目前受影響的Linux核心版本:
Linux Kernel
修復建議
#1、補丁修復鏈接:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee
2、升級Linux核心至最新版。
參考連結
https://github.com/torvalds/linux/commit/6994eefb0053799d2e07cd140df6c2ea106c41ee
以上是linux本地提權漏洞介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!