ZeyuanGuo/dirtyfrag
GitHub: ZeyuanGuo/dirtyfrag
Dirty Frag 是利用 Linux 内核 xfrm-ESP 与 RxRPC 页缓存写入漏洞实现通用本地提权的 PoC,附带了页缓存恢复机制以减少对测试系统的影响。
Stars: 0 | Forks: 0
# Dirty Frag:通用 Linux LPE
```
如果无法验证恢复情况,PoC 将以状态码 `7` 退出。请勿在
该状态下重复使用测试系统。
⚠️ **重要提示:** 自动恢复仅涵盖正常退出路径。如果
PoC 或 shell 异常终止,或者返回了状态码 `7`,请通过运行以下命令清除
受污染的 page cache:
```
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) 到 [aa54b1d27fe0 (2026-05-10)](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aa54b1d27fe0c2b78e664a34fd0fdf7cd1960d71)。
换句话说,这些漏洞的实际有效寿命约为 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. 使用以下命令移除发生漏洞的模块并清理 page cache。
```
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` 成员“弄脏”的 bug 类,所以这个名字是最合适的。
## 它与 “Copy Fail” 漏洞有什么关系?
Copy Fail 是开展此项研究的动机。特别是,Dirty Frag 漏洞链中的 xfrm-ESP Page-Cache Write 与 Copy Fail 共享同一个 sink。然而,无论 algif_aead 模块是否可用,它都会被触发。换句话说,即使在应用了已公开的 Copy Fail 缓解措施(algif_aead 黑名单)的系统上,你的 Linux 仍然容易受到 Dirty Frag 的攻击。
## 那么,我该如何修复我的 Linux?
请参阅上面的缓解措施部分。
标签:0day挖掘, Dirty Pagetable, PoC, Web报告查看器, 内核安全, 安全渗透, 客户端加密, 暴力破解, 本地提权