Sudo本地权限提升漏洞利用分析(CVE-2025-32463)

本文详细分析了Sudo项目中存在的CVE-2025-32463漏洞,该漏洞允许普通用户通过chroot功能从未受信任的控制域包含功能,实现本地权限提升至root权限,CVSS评分高达9.3分。

CVE-2025-32463

通过Linux中的Sudo chroot实现本地权限提升至root。

这是什么?

相关新闻可以在这里阅读:

TL;DR 和 CMIIW 所以,sudo是用来以管理员/root身份运行命令的命令。用户只有在加入sudoers组的情况下才能运行sudo。但是sudo二进制文件中存在一个bug,使得没有权限运行sudo的普通用户能够切换为root用户。

这个bug存在于sudo命令的--chroot选项中。chroot允许在临时目录中运行命令。问题在于,sudo会先检查临时目录中的配置文件,然后再检查用户是否有权运行sudo。

如果这个配置文件 somehow 可以被我们编辑,并指向一个已经被修改过的代码来获取root访问权限,我们就可以在没有身份验证或注册为sudoer的情况下获得root访问权限。因为在处理过程中,为了获取这些信息,系统会临时将命令升级为root权限。

这个配置文件是什么?是/etc/nsswitch.conf。这个配置文件被系统用来了解,例如,这个用户属于哪个组等等。nsswitch文件大致如下:

<database> <source1> <source2> ... <sourcen>

1
2
3
4
5
passwd  files systemd
group   files systemd
shadow  files
gshadow files
...

看!如果使用的数据源是files,nss将调用一个名为libnss_files.so.2的库。这个文件包含C代码,如果我们编辑它,很有可能我们可以获得root访问权限。因为,系统以root身份运行这个库,即使命令不是由sudoers用户运行的。可以在exploit.sh文件中看到。

总结:

  • 在我们控制的文件夹中创建伪造的配置文件,即/etc/nsswitch.conf
  • 使用chroot将sudo指向该文件夹。
  • 让sudo加载已被注入代码的库以获得root访问权限。

POC

POC

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计