在實用程式中
如果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”,則存在漏洞
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
版本中修復的問題
來源: opennet.ru