作為 Linux 中最常使用的重要實用程序之一,Sudo 幾乎安裝在每一款 UNIX 和 Linux 發(fā)行版上,以便用戶調用和實施核心命令。 然而近期曝出的一個提權漏洞,卻直指 sudo 的一個安全策略隱患 —— 即便配置中明確不允許 root 用戶訪問,該漏洞仍可允許惡意用戶或程序,在目標 Linux 系統(tǒng)上以 root 用戶身份執(zhí)行任意命令。
(題圖 via Hacker News )
據(jù)悉,Sudo 特指“超級用戶”。作為一個系統(tǒng)命令,其允許用戶以特殊權限來運行程序或命令,而無需切換使用環(huán)境(通常以 root 用戶身份運行命令)。
默認情況下,在大多數(shù) Linux 發(fā)行版中(如屏幕快照所示),/ etc / sudoers 的 RunAs 規(guī)范文件中的 ALL 關鍵字,允許 admin 或 sudo 分組中的所有用戶,以系統(tǒng)上任何有效用戶的身份運行任何命令。
然而由于特權分離是 Linux 中最基本的安全范例之一,因此管理員可以配置 sudoers 文件,來定義哪些用戶可以運行哪些命令。
這樣一來,基板限制了用戶以 root 身份運行特定或任何命令,該漏洞也可允許用戶繞過此安全策略,并完全控制系統(tǒng)。
Sudo 開發(fā)者稱: “只要 Runas 規(guī)范明確禁止 root 訪問、首先列出 ALL 關鍵字,具有足夠 sudo 權限的用戶就可以使用它來以 root 身份運行命令?!?/p>
據(jù)悉,該漏洞由 蘋果 信息安全部門的 Joe Vennix 追蹤發(fā)現(xiàn)(CVE-2019-14287)。且想要利用這個 bug,只需 Sudo User ID -1 或 4294967295 。
這是因為將用戶 ID 轉換為用戶名的函數(shù),會將 -1(或無效等效的 4294967295)誤認為 0,而這正好是 root 用戶 User ID 。
此外,由于通過 -u 選項指定的 User ID 在密碼數(shù)據(jù)庫中不存在,因此不會運行任何 PAM 會話模塊。
綜上所述,該漏洞影響最新版本 1.8.28 之前的所有 Sudo 版本。慶幸的是,幾個小時前,各大 Linux 發(fā)行版都已經在向用戶推送新版本了。
好了,本文結束,感謝大家對腳本之家網站的支持!