1. 漏洞概览

CVE

组件/位置

受影响发行版

权限起点 → 终点

CVE-2025-6018

PAM 配置 (/etc/pam.d/login 等)

openSUSE Leap 15 / SLES 15

unprivileged

 → allow_active

CVE-2025-6019

libblockdev

 经由 udisks2 的 polkit 动作 modify-device

几乎所有主流发行版(Ubuntu、Debian、Fedora、openSUSE…)

allow_active

 → root

把两者连在一起,就形成了“普通本地用户 ➜ root”的完整跳板链。Qualys 用不到十行命令就演示成功,Ubuntu / Debian / Fedora 默认装的服务器版同样沦陷。

2. 漏洞一(CVE-2025-6018):PAM 误把远程登录当“本地控制台”

  • 问题根源openSUSE Leap 15 / SLES 15 的 PAM 规则把 XDG_SEAT / XDG_SESSION_CLASS 等检查写错,导致 任何 SSH/TTY 会话都会被标记成 active seat

  • 后果polkit 看到 “allow_active=yes” 就默许一些只允许“人在键盘前”执行的管理动作,例如挂载设备、修改网络。于是攻击者获得一个“带轮子的小管家”权限层。

3. 漏洞二(CVE-2025-6019):udisks2 + libblockdev 本地提权

  1. 入口:polkit 动作 org.freedesktop.udisks2.modify-device 默认策略是 allow_active=yes

  2. 触发:拿到 allow_active 的人可以让 udisksd 去 loop-mount 自己可控的镜像。

  3. 漏洞点libblockdev 处理恶意 superblock/header 时少了边界检查,最终写任意文件 + 提权到 root

4. 完整攻击链(实战视角)

# 假设攻击者已获得普通 shell(本地或 SSH)
1. 利用 CVE-2025-6018                       → 会话被 PAM 标记成 allow_active
2. 调用 dbus-send 触发 udisks loop-mount  → polkit 直接放行
3. 恶意镜像击穿 libblockdev 边界检查       → setuid-root shell 落地
4. root 到手,开始关闭 EDR / 植入后门 / 横向...

Qualys 公开的 PoC 在https://cdn2.qualys.com/2025/06/17/suse15-pam-udisks-lpe.txt可自行参考。

5. 影响范围 & 风险评估

  • “双杀”发行版:openSUSE Leap 15 / SLES 15(同时含两洞)

  • 单独 6019:只要装了 udisks2(服务器默认也会装)就中招,Qualys 已在 Ubuntu 22.04、Debian 12、Fedora 40 复现。

  • 利用门槛:本地低权账号即可,无需物理接触、无需内核漏洞。

  • 攻击面:开发机、CI runner、桌面、无虚拟化服务器统统符合条件。

6. 修补 & 临时缓解

动作

说明

立即升级发行版安全补丁

SUSE、Ubuntu、Debian、Fedora 已推送;确认 libblockdev ≥ 2.28.1 且 polkit 规则已调整。

应急策略:收紧 polkit 规则

/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy

 中找到 modify-device 项,把 <allow_active>yes</allow_active> 改为 auth_admin,重载 polkit。

关掉不用的 udisks

服务器场景可直接 systemctl mask udisks2.service

日志监控

关注 /var/log/polkit.log / journalctl _COMM=udisksd 中的 modify-device 调用暴增。

7. 排查脚本示例

# 检查是否仍允许 allow_active
grep -A3 modify-device /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy \
  | grep -q "<allow_active>yes</allow_active>" && \
  echo "[!] 仍存在风险,需改成 auth_admin"

# 检查 libblockdev 版本
rpm -q libblockdev || dpkg -l | grep libblockdev

8. 结论

这是一条 “登陆即 root” 的超短链,攻击者无需任何 kernel 0-day。只要你有本地账号、目标机器跑着 udisks,就能在几秒内拿到最高权限。别等漏洞利用在野流通再补,今天就打补丁或关掉 udisks——否则整片服务器集群都会被拿来开后门。

——打完收工,建议马上检查你的资产清单。

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。