当前位置:首页>Linux>Dirty Frag:Linux 内核零拷贝路径本地提权漏洞

Dirty Frag:Linux 内核零拷贝路径本地提权漏洞

  • 2026-10-11 08:14:47
Dirty Frag:Linux 内核零拷贝路径本地提权漏洞

Dirty Frag:Linux 内核零拷贝路径本地提权漏洞

链式组合 IPsec ESP 与 RxRPC 模块缺陷,所有主流发行版暂无补丁

漏洞概览

🔓

普通用户→root

无需密码,单命令提权

📅

影响约 9 年

自 2017 年起的内核代码

📦

PoC 已公开

GitHub 一行命令复现

韩国安全研究员 Hyunwoo Kim(@v4bel)公开披露了一个被命名为"Dirty Frag"的 Linux 内核本地权限提升漏洞。该漏洞允许普通用户无需密码即可获得系统最高权限(root),且目前 Ubuntu、RHEL、Fedora、openSUSE 等所有主流发行版均尚无可用补丁。PoC 已在 GitHub 公开,任何人均可通过单行命令完成编译并执行。

漏洞原理

Dirty Frag 属于与 Dirty Pipe(CVE-2022-0847)和 Copy Fail 相同的漏洞类——零拷贝发送路径上的脏写入问题。具体机制:splice() 系统调用将攻击者只有读权限的 page cache 页直接钉入 struct sk_buff 的 frag 槽,而接收侧内核代码对该 frag 执行原地(in-place)加密/解密,导致只读 page cache 被写入。

💡 Dirty Frag 是确定性逻辑 bug,不依赖时间窗口,无需竞态条件,利用失败时内核不会 panic,成功率极高。

漏洞由两个独立模块的缺陷链式组合而成:

变体一:xfrm-ESP Page-Cache Write

利用 IPsec ESP 模块,影响范围约 9 年(自 2017 年 commit cac2661c53f3 起)。该变体提供类似 Copy Fail 的任意 4 字节 STORE 原语,可将 /usr/bin/su 替换为恶意程序。缺点是需要创建用户命名空间的权限,而 Ubuntu 的 AppArmor 策略有时会阻止非特权用户创建命名空间。

变体二:RxRPC Page-Cache Write

利用 RxRPC 协议模块,自 2023 年(commit 2dc334f1a63a)起受影响。该变体可清空 /etc/passwd 中 root 的密码字段,完全不需要任何特殊权限。缺点是 rxrpc.ko 模块本身在大多数发行版上默认不加载——但在 Ubuntu 上默认加载。

两个变体的限制互相覆盖:ESP 模块在大多数发行版上都可用(命名空间被阻止时,RxRPC 兜底),RxRPC 在 Ubuntu 上可用(ESP 命名空间被阻止时)。这使得单一攻击程序能在几乎所有主流 Linux 发行版上通用提权。

被打破的披露流程

4月29-30日

向 security@kernel.org 提交漏洞和补丁

5月7日

向 linux-distros 提交,设定 5 天 embargo

5月7日

第三方抢先公开 exploit,embargo 被打破

5月7日

作者与发行版协商后全面公开

上游已合并

ESP 模块修复补丁(RxRPC 尚未)

当前状态

所有发行版无补丁,CVE 待分配

已验证受影响版本

• Ubuntu 24.04.4(6.17.0-23-generic)

• RHEL 10.1(6.12.0-124.49.1.el10_1)

• openSUSE Tumbleweed(7.0.2-1-default)

• CentOS Stream 10 / AlmaLinux 10

• Fedora 44(6.19.14-300.fc44)

缓解措施

⚠️ 在补丁发布前,禁用相关内核模块

在 /etc/modprobe.d/ 下创建黑名单文件,阻止 esp4、esp6、rxrpc 三个模块加载,并立即卸载已加载的模块。此操作对不使用 IPsec 或 AFS(Andrew File System)的普通服务器无功能影响。

写在最后

Dirty Frag 再次暴露了内核零拷贝路径中的深层隐患。从 2022 年的 Dirty Pipe 到 2024 年的 Copy Fail,再到今天的 Dirty Frag,同类 bug 反复出现在 splice/sendfile 这条代码路径上。对于运维人员来说,在补丁发布前禁用相关模块是最直接的防护手段。

来源:oss-security@openwall.org · GitHub

最新文章

随机文章