最新消息:本站原qzkyl域名已转让,后期该域名所有言论与本站无关,同时本站已改名ipve虚拟机,交换友链请发送邮件zc#ipve.cn(#换@)

Dirty Frag 漏洞深度技术分析与复现:Linux 内核的零拷贝页缓存污染–麒麟 V10

GNU/Linux ipve 50浏览 0评论

📌 来源说明:本文原载于 CSDN 博客 《Dirty Frag 漏洞深度技术分析与复现:Linux 内核的零拷贝页缓存污染》,作者:JunBoo_,遵循 CC 4.0 BY-SA 版权协议。

项目内容

项目 内容
漏洞名称 Dirty Frag (Copy Fail 2 / Electric Boogaloo)
威胁类型 本地权限提升
CVE 编号 CVE-2026-43284 (AlmaLinux), CVE-2026-31431 (关联)
发现时间 2026-05-07 (公开披露)
影响范围 内核版本 4.14+ (2017 年) 至 6.x/7.x,包括 Ubuntu, RHEL, Debian, Arch, WSL2

1. 漏洞概述

Dirty Frag 是一个位于 Linux 内核网络子系统中,涉及 IPSec (xfrm) 和 RxRPC 组件的高危本地权限提升漏洞。

与依赖于条件竞争(Race Condition)的经典漏洞不同,Dirty Frag 是一个确定性的逻辑漏洞。它允许低权限攻击者利用内核的”零拷贝”优化路径,覆写本应只读的页缓存(Page Cache)中的文件数据。通过篡改 /etc/passwd 或 SUID 二进制文件,攻击者可在几秒内将权限提升至 Root。

该漏洞之所以被称为”Dirty”家族的新成员,是因为它继承了 Dirty Pipe 和 Copy Fail 的利用哲学——攻击操作系统核心的页缓存机制。


2. 漏洞发现

该漏洞由安全研究员 Hyunwoo Kim (@v4bel) 发现并报告。

有趣的是,在官方协调披露日期之前,由于上游内核的修复补丁在未标注安全性的情况下被公开提交,导致另一名研究员 (SiCk / @0xdeadbeefnetwork) 独立地从代码提交中逆向推导出了漏洞点,并发布了名为”Copy Fail 2: Electric Boogaloo”的 PoC。这导致了漏洞的提前公开。

潜伏期:ESP 漏洞点自 2017 年随内核提交 cac2661c53f3 引入,至今潜伏 9 年。

披露日:2026 年 5 月 7 日,漏洞详情及 PoC 正式公开。


3. 漏洞原理

Dirty Frag 本质上是两个独立的、具有互补性的页缓存写入漏洞的链式利用。

Dirty Frag 的成因在于:攻击者通过 splice() 将自身仅有读权限的页缓存页注入网络数据包(skb)的 frag 槽位,而内核接收侧的加密/解密操作会原地修改该 frag 所指向的页——这一行为并未校验调用者对该页是否具备写权限,从而造成对只读文件页缓存的非授权写入。两个变体(ESP / RxRPC)互为备用,实现对不同发行版的覆盖。下面为漏洞的核心逻辑图:

漏洞核心逻辑图


4. 漏洞复现

本次使用的系统环境是麒麟 V10(2503 版),内核版本为 5.4.18,架构为 x86_64。

# 查看内核版本
uname -r
# 查看系统信息
uname -a
# 查看架构信息
uname -m

系统环境信息

使用原作者提供的 PoC 进行编译,下载地址为 https://github.com/V4bel/dirtyfrag

# 将 exp.c 编译为可执行文件 exp,并链接 util 库
sudo gcc -O0 -Wall -o exp exp.c -lutil

编译 EXP 截图

编译成功后,用普通用户进行执行,发现可以直接提权到 root,复现成功。

提权成功截图


5. 总结

Dirty Frag 再次揭示了操作系统零拷贝优化带来的严重安全风险。它不仅是对 IPSec 栈的一次深度审计,也是对”补丁周”安全的警示:依赖于 Embargo 的修复流程极易因为公开仓库的提交而失效。

对于防御者而言,纵深防御原则在此处体现得淋漓尽致——由于无法立即升级内核,传统的模块禁用 (modprobe.d) 和最小化安装策略依然是抵御这类 0-Day 攻击的”压舱石”。


原文链接:https://blog.csdn.net/weixin_55992263/article/details/160897939

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址