V4bel/dirtyfrag

GitHub: V4bel/dirtyfrag

链式组合 xfrm-ESP 和 RxRPC 两个页缓存写入漏洞,实现跨主流 Linux 发行版的通用本地提权利用。

Stars: 3922 | Forks: 575

# Dirty Frag:通用 Linux LPE

tux

# 摘要 ![tux](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8be6584896204048.gif) 本文档描述了由 [Hyunwoo Kim (@v4bel)](https://x.com/v4bel) 首次发现并报告的 Dirty Frag 漏洞类别,该漏洞通过将 `xfrm-ESP Page-Cache Write` 漏洞和 `RxRPC Page-Cache Write` 漏洞进行链式组合,能够在主流 Linux 发行版上获取 root 权限。 Dirty Frag 是对 [Dirty Pipe](https://dirtypipe.cm4all.com/) 和 [Copy Fail](https://copy.fail/) 所属错误类别的延伸扩展案例。由于这是一个不依赖于时间窗口的确定性逻辑错误,因此不需要触发竞态条件。即使在漏洞利用失败时,内核也不会发生 panic,并且成功率极高。 有关详细的技术信息和时间线,[请参见此处](assets/write-up.md)。 由于目前信息披露 embargo 已被打破,因此尚不存在任何补丁或 CVE。在与 linux-distros@vs.openwall.org 的维护人员协商并根据他们的要求下,本文档现予以发布。有关披露时间表,请参阅技术细节部分。 # 漏洞利用 ## 单行命令特殊用法 ``` git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp ``` 本 PoC 是在与 linux-distros 协商后作为准确信息提供的。请勿在未经您授权测试的系统上使用。 ## 清理 ⚠️ **重要提示:** 运行此漏洞利用程序后,页缓存会被污染。要清除受污染的页缓存并确保系统稳定性,请运行: ``` echo 3 > /proc/sys/vm/drop_caches ``` 或者重新启动系统。 # 受影响版本 - **CVE-2026-43284**:`xfrm-ESP Page-Cache Write` 漏洞影响范围从 [cac2661c53f3 (2017-01-17)](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cac2661c53f3) 至 [f4c50a4034e6 (2026-05-05)](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4)。 - **CVE-2026-43500**:`RxRPC Page-Cache Write` 漏洞影响范围从 [2dc334f1a63a (2023-06-08)](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2dc334f1a63a) 起并延伸至上游主线。 换言之,这些漏洞的有效生命周期约为 9 年。 此 Dirty Frag 漏洞已在以下发行版版本上进行了测试。 - Ubuntu 24.04.4:6.17.0-23-generic - RHEL 10.1:6.12.0-124.49.1.el10_1.x86_64 - openSUSE Tumbleweed:7.0.2-1-default - CentOS Stream 10:6.12.0-224.el10.x86_64 - AlmaLinux 10:6.12.0-124.52.3.el10_1.x86_64 - Fedora 44:6.19.14-300.fc44.x86_64 - ... # 缓解措施 1. 由于负责任的披露计划及 embargo 已被打破,目前所有发行版均没有可用的补丁。请使用以下命令移除存在漏洞的模块,并清除页缓存。 ``` 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; echo 3 > /proc/sys/vm/drop_caches; true" ``` 2. 一旦各个发行版向后移植了补丁,请相应地进行更新。 # 常见问题 ## 为什么你要将两个漏洞链接起来? `xfrm-ESP Page-Cache Write` 提供了像 Copy Fail 一样强大的任意 4 字节 STORE 原语,并且包含在大多数发行版中,但它需要具有创建 namespace 的权限。 Ubuntu 有时会通过 AppArmor 策略阻止无特权用户 namespace 的创建。在这种环境下,`xfrm-ESP Page-Cache Write` 无法被触发。`RxRPC Page-Cache Write` 不需要创建 namespace 的权限,但 `rxrpc.ko` 模块本身在大多数发行版中并未包含。然而,在 Ubuntu 上,`rxrpc.ko` 模块是默认加载的。 将这两个变种进行链式组合,可以使其盲点互相覆盖,从而能够在所有主流发行版上获取 root 权限。详情请参阅技术细节文档。 ## 又一个“命名式”的“Dirty”系列? 是的,是的,我知道。然而,这个漏洞是“Dirty Pipe”的后代,并且它属于会“弄脏” `struct sk_buff` 的 `frag` 成员的错误类别,因此这个名字是最合适的。 ## 它与“Copy Fail”漏洞有什么关系? Copy Fail 是促成这项研究的动机。特别是,Dirty Frag 漏洞链中的 `xfrm-ESP Page-Cache Write` 与 Copy Fail 共享相同的缺陷汇聚点。然而,无论 `algif_aead` 模块是否可用,它都会被触发。换言之,即使在应用了公开已知的 Copy Fail 缓解措施(`algif_aead` 黑名单)的系统上,您的 Linux 仍然会受到 Dirty Frag 的攻击。 ## 那么,我该如何修复我的 Linux? 请参阅缓解措施和[披露时间表部分](assets/write-up.md)。由于受外部因素影响,embargo 已被打破,因此目前所有发行版均不存在相应的补丁。
标签:0day挖掘, CVE-2026-43284, Dirty Frag, Dirty Pipe, Exploit, LPE, Page Cache, PoC, Race Condition, RxRPC, Web报告查看器, xfrm-ESP, 内核安全, 内核漏洞, 协议分析, 子域名枚举, 安全渗透, 客户端加密, 暴力破解, 本地提权, 权限提升, 系统安全, 网络安全, 隐私保护, 零日漏洞