sudo 中存在允許在使用特定規則時進行權限升級的漏洞

在實用程式中 須藤,用於代表其他使用者組織命令的執行, 已確定 脆弱性 (CVE-2019,14287),它允許您以 root 權限執行命令,如果 sudoers 設定中有規則,其中在允許關鍵字“ALL”之後的用戶 ID 檢查部分中明確禁止以 root 權限運行(“... (全部,!根) ....”)。該漏洞不會出現在發行版的預設配置中。

如果sudoers 具有有效但在實踐中極其罕見的規則,允許在除root 之外的任何使用者的UID 下執行某個命令,則有權執行此命令的攻擊者可以繞過既定的限制並使用以下命令執行該命令根權。要繞過限制,只需嘗試執行設定中指定的 UID“-1”或“4294967295”的命令,這將導致其以 UID 0 執行。

例如,如果設定中有一條規則,賦予任何使用者在任何UID下執行程式/usr/bin/id的權限:

myhost ALL = (ALL, !root) /usr/bin/id

或僅允許特定使用者 bob 執行的選項:

myhost bob = (ALL, !root) /usr/bin/id

使用者可以執行“sudo -u '#-1' id”,並且 /usr/bin/id 實用程式將以 root 身分啟動,儘管設定中明確禁止。這個問題是由於忽略了特殊值“-1”或“4294967295”而導致的,這些值不會導致UID發生變化,但由於sudo本身已經以root身份運行,在不更改UID的情況下,目標命令也是以root 權限啟動。

在SUSE和openSUSE發行版中,如果規則中沒有指定“NOPASSWD”,則存在漏洞 不可利用,因為在 sudoers 中,預設啟用「Defaults targetpw」模式,該模式會根據密碼資料庫檢查 UID 並提示您輸入目標使用者的密碼。對於此類系統,只有在存在以下形式的規則時才能進行攻擊:

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

版本中修復的問題 須藤 1.8.28。該修復也可以透過以下形式獲得: 修補。在分發包中,該漏洞已被修復 Debian, Arch Linux, SUSE/開放SUSE, Ubuntu, Gentoo的 и FreeBSD的。在撰寫本文時,該問題仍未解決 RHEL и Fedora。該漏洞由蘋果公司的安全研究人員發現。

來源: opennet.ru

添加評論