当前位置:首页>Linux>高危:linux再曝通杀漏洞Dirty Frag

高危:linux再曝通杀漏洞Dirty Frag

  • 2026-10-11 08:08:49
高危:linux再曝通杀漏洞Dirty Frag

Dirty Frag 是一个刚刚公开的 Linux 内核本地权限提升(Local Privilege Escalation, LPE)漏洞,由韩国安全研究员 Hyunwoo Kim(@v4bel)发现并报告。它允许普通用户在多数主流 Linux 发行版上稳定获得 root 权限。

核心特点

  • 漏洞本质:属于“Dirty”系列漏洞(Dirty Pipe、Copy Fail 等)。攻击者通过 splice() 将仅拥有读权限的页缓存(page cache)页面“种植”到 struct sk_buff 的 frag(分片)中,随后内核在零拷贝路径上对该页面进行 原地写操作,从而永久修改页缓存内容。

  • 确定性高:无需竞态条件(race condition),失败也不会导致内核 panic,成功率极高。

  • 影响范围广:几乎覆盖所有主流发行版(Ubuntu、RHEL、Fedora、openSUSE 等),其中 xfrm-ESP 变体影响时间长达约 9 年。

两个漏洞链Dirty Frag 通过链式利用两个独立的 “Page-Cache Write” 漏洞实现全覆盖:

  1. xfrm-ESP Page-Cache Write(主要变体)

    • 利用 IPsec ESP 输入路径(esp_input / esp6_input)绕过 skb_cow_data(),直接在来自 splice() 的 frag 页面上执行 AEAD 解密/crypto 操作。

    • 提供 任意 4 字节写(STORE)原语,攻击者可精准控制写入的文件偏移和值。

    • 需要 CAP_NET_ADMIN 权限(通常可通过 unprivileged user namespace 获得)。

  2. RxRPC Page-Cache Write

    • 利用 RxRPC(常用于 AFS 等)路径的原地解密。

    • 无需 namespace 权限,但在多数发行版中模块默认不加载(Ubuntu 等例外)。

两者互补:ESP 变体覆盖面广但需 namespace;RxRPC 变体无需 namespace 但模块加载受限。链式使用后,几乎所有主流发行版均受影响。即使已应用 Copy Fail 的缓解措施,仍可能被绕过。利用方式(概念)攻击者通常针对 /usr/bin/su(setuid-root)等文件的页缓存进行修改,注入精心构造的 root shell ELF。二进制在内存中映射后,执行 execve("/usr/bin/su") 即可完成提权。整个过程确定性强,修改后的页缓存会持久存在,直到执行 drop_caches 或系统重启。GitHub 上已公开 PoC(exp.c),可一行命令编译运行(仅供授权测试使用)。受影响版本

  • xfrm-ESP:约 2017 年相关 commit 起至最新 upstream 内核。

  • RxRPC:约 2023 年 6 月相关 commit 起。 已测试 Ubuntu 24.04、RHEL 10 等多个发行版均可成功利用。

缓解措施(当前)由于 embargo 被第三方打破,目前尚未有官方 CVE 和 patch。建议立即执行以下缓解命令:

bash

sudo sh-c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
  • 该命令阻止相关内核模块加载(会影响 IPsec 和 RxRPC/AFS 使用)。

  • 可通过 echo 3 > /proc/sys/vm/drop_caches 清除已被污染的页缓存。

  • 持续关注各发行版官方内核更新,及时升级。

参考资源:

  • GitHub 项目(含详细 write-up 和 PoC):https://github.com/V4bel/dirtyfrag

  • 公开披露邮件:oss-security 邮件列表


这是一个典型的 Linux 内核页缓存与网络栈零拷贝路径逻辑漏洞,提醒我们在复杂场景下仍需持续进行代码审计。生产环境建议尽快应用缓解措施并关注官方补丁发布。

最新文章

随机文章