Dirty Frag:通用 Linux LPE

发布: (2026年5月9日 GMT+8 04:36)
5 分钟阅读

Source: Hacker News

Abstract

tux

本文档描述了 Dirty Frag 漏洞类别,该漏洞最早由 Hyunwoo Kim (@v4bel) 发现并报告。它可以通过链式利用 xfrm‑ESP Page‑Cache Write 漏洞和 RxRPC Page‑Cache Write 漏洞,在主流 Linux 发行版上获取 root 权限。

Dirty Frag 扩展了包括 Dirty PipeCopy 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。由于信息已经泄露,目前尚无任何发行版的官方补丁可用。请关注上游更新,并在发布后尽快应用。

0 浏览
Back to Blog

相关文章

阅读更多 »