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