CVE-2025-32462
CVE-2025-32462-Linux sudo本地提权漏洞复现
漏洞详情
漏洞介绍
sudo 是 Linux 系统中用来管理权限的核心工具,用来授权用户临时获取 root 或者其他用户权限执行命令,既保障系统安全又便于操作。
CVE-2025-32462的Linux sudo 本地权限提升漏洞在于 sudo 的 -h(–host)选项存在缺陷,该选项本应与 -l(–list)配合使用来查询远程主机权限,但实际未严格限制其仅用于查询功能,导致攻击者可能结合命令执行或文件编辑操作实现本地提权
影响版本
- 1.8.8 <= sudo <= 1.8.32
- 1.9.0 <= sudo <= 1.9.17
利用条件
- 本地低权限用户
- 存在基于主机的权限规则:可以在
/etc/sudoers
中定义Host或者Host-Aias - 知道允许执行命令的远程主机名
漏洞复现
环境配置
- Ubuntu20.0.4
- Sudo1.8.31
可以通过以下命令查看sudo版本
1 | sudo --version |
在正常情况下可以看到,sudo -i
会提示输入密码
漏洞复现
首先我们需要编辑sudoers文件,将以下内容添加进去
如果说没有权限,可以使用chmod加一个可写权限
1 | //加可写权限 |
此时使用以下命令就可以提权成功(就是要等一会)
1 | sudo -h ci.test.local 命令 |
CVE-2025-32463
漏洞详情
漏洞介绍
从1.9.14版本的sudo后,就引用了-R(–chroot)选项,本意是用来让用户通过该选项,去指定chroot的目录下执行具有root权限的命令,保证执行环境的隔离。
Linux sudo chroot 权限提升漏洞(CVE-2025-32463)的原理主要就是利用sudo的一个-R/–chroot选项,该工具开始在评估sudoers文件之前解析chroot环境中的路径。这意味着攻击者可以诱骗Sudo读取伪造的/etc/nsswitch.conf
文件——该文件会指示加载恶意共享库如libnss_/woot1337.so.2
影响版本
- 1.9.14 <= sudo <= 1.9.17
**注意:**Sudo 的旧版本(<= 1.8.32)不会受到此攻击,因为在旧版本中并不存在 chroot 功能。
利用条件
只需要拥有:本地低权限用户的权限即可漏洞核心
sudo在解析与sudoers的相匹配的命令之前,会先进入一个我们可以控制的chroot环境,也就是我们-R指定的目录下。而当我们在这个目录下写一些恶意的配置文件如:
- /etc/nsswitch.conf
- 恶意libnss_*.so动态链接库
- /etc/passwd,/etc/group等
而当sudo解析用户、组、主机名等权限进行匹配glibc Nss(Name Service Switch)时,会触发我们在该目录下的恶意动态库,从而进行提权
漏洞流程如下:
- 在执行sudoers检查前,解析用户信息
- 用户信息的解析依赖于getpwnam()等glibc函数
- glibc根据/etc/nsswitch.conf加载libnss_*动态库
- 进入了可控的chroot环境,从而加载用户伪造的恶意库
- 恶意库在加载时,使用root权限执行代码
- 从而无需匹配sudoers,即可以root权限执行任何代码
漏洞复现
环境配置
- ubuntu20.04
- Sudo1.9.14
漏洞复现
手动复现
一键提权EXP
可以一键提权的EXP内容如下
1 | #!/bin/bash |