JM00NJ/CVE-2025-6019-udisks2-XFS-Resize-TOCTOU-Privilege-Escalation

GitHub: JM00NJ/CVE-2025-6019-udisks2-XFS-Resize-TOCTOU-Privilege-Escalation

CVE-2025-6019 PoC,利用 udisks2 XFS 调整大小功能的 TOCTOU 竞态条件实现本地权限提升。

Stars: 1 | Forks: 0

CVE-2025-6019:udisks2 XFS 调整大小 TOCTOU 本地权限提升 本仓库包含 CVE-2025-6019 的概念验证,这是 udisks2 中的一个竞态条件漏洞,允许通过 XFS 文件系统调整大小进行本地权限提升。 ### 🎯 目标环境与兼容性 此漏洞利用程序专为满足以下条件的任何 Linux 系统设计: 易受攻击服务:udisks2(已启用 D-Bus 访问)。 文件系统工具:已安装 xfsprogs(特别是 mkfs.xfs)。 架构:无关(适用于 x86、x64、ARM 等)。 ### ✅ 已测试环境 该漏洞利用程序已在以下配置上通过验证: * **OS:** openSUSE Leap 15.6 * **内核:** Linux 6.4.0-150600.23.65-default (x86_64) * **虚拟化:** VMware * * **目标:** udisks2(通过 D-Bus) *注意:`weapon.py` 脚本会自动处理环境 PATH 设置以定位 `mkfs.xfs`,该程序通常仅限于 sbin 目录。* ### 🛡️ Protofile 的作用 利用该漏洞需要一个使用 Protofile 特制 的 XFS 镜像。这允许我们定义一个包含 SUID root 二进制文件 的文件系统结构,而无需在镜像创建阶段拥有 root 权限。mkfs.xfs 的 -p 标志使用此模板将 SUID 位直接嵌入到镜像的元数据中。 ### 🚀 漏洞利用指南(手动方法) ### 第 1 步:绕过 Polkit 限制 远程会话(SSH、Docker)中的标准用户受限于无法使用 `udisks2`。运行此脚本以伪造一个本地会话(`seat0`): python3 bypass.py ### 第 2 步:武器化(镜像创建) 使用 weapon.py 生成 SUID 镜像。此脚本使用 XFS protofile 嵌入一个具有 4755 权限的 shell。 python3 weapon.py ### 第 3 步:触发竞态 执行 trigger.sh 以开始向 udisks2 泛洪 D-Bus 调整大小请求。这会强制守护进程在 /tmp/blockdev.XXXXXX 中创建临时挂载点。 chmod +x trigger.sh ./trigger.sh ### 第 4 步:赢得竞态(手动执行) 由于自动化脚本在资源受限的环境中可能不稳定,建议使用手动方法: 监控 /tmp 中的临时挂载点: watch -n 0.1 "ls -la /tmp" 识别目标:寻找具有全局可读权限(例如 drwxr-xr-x)的目录,而不是默认的加固权限 drwx------。 执行 Payload:一旦识别,进入该目录并执行 shell: cd /tmp/blockdev.Q797J3 # 示例目录名 ./pwnbash -p 结果:如果在竞态窗口内(应用 nosuid 标志之前)执行,你将获得一个 root shell。 ### 📁 文件描述明 bypass.py:配置脚本,用于伪造本地会话(seat0)并通过 ~/.pam_environment 绕过 Polkit 限制。 weapon.py:使用 XFS Protofile 模板的 SUID 镜像生成器。 trigger.sh:用于 udisks2 文件系统调整大小的 D-Bus 竞态条件触发器。 详细分析请参阅: 👉 NetaCoding - https://netacoding.blogspot.com/2026/02/new-vulnerability-analysis-udisks2-xfs.html ### ⚠️ 免责声明 本项目仅用于教育和授权安全测试目的。未经授权访问计算机系统是非法的。
标签:Cutter, CVE-2025-6019, D-Bus, mkfs.xfs, PoC, Polkit绕过, SUID, Sysmon, TOCTOU, udisks2, Web报告查看器, XFS, xfsprogs, 协议分析, 文件系统, 暴力破解, 本地提权, 权限提升, 竞态条件, 网络安全, 逆向工具, 隐私保护