突破禁运发布的“Dirty Frag”——Linux内核一行代码即可获取root的新型LPE

一行命令即可获得root权限。

而且官方内核版本尚未发布。

>

本文涵盖内容

  • Dirty Frag (CVE-2026-43284, CVE-2026-43500)的本质和风险等级
  • 结合IPsec ESP和RxRPC两个内核模块的漏洞利用链的工作原理
  • “禁运被打破”这一表述在安全行业中的分量
  • 当前需要立即采取的临时缓解措施
  • 从Dirty COW → Dirty Pipe → Copy Fail → Dirty Frag演变而来的页面缓存篡改系列

又是你,Linux内核——页面缓存篡改系列的新篇章

2026年5月7日,Linux安全邮件列表(oss-security)上发布了一行PoC。这是由韩国安全研究员金贤宇(@v4bel)发现的新型权限提升漏洞,名为Dirty Frag。CVSS 3.1评分为7.8分(高危)。非特权普通用户可以通过一行命令获取root权限。

如果这些名字不熟悉,那么这些呢?

  • Dirty COW (2016, CVE-2016-5195) — 震惊所有Android·Linux的竞态条件漏洞
  • Dirty Pipe (2022, CVE-2022-0847) — 通过管道覆盖只读文件
  • Copy Fail (2026, CVE-2026-31431) — 仅在一周前公开的同类漏洞

而这次是Dirty Frag。别名是“Copy Fail 2: Electric Boogaloo”。这不是开玩笑,它真的就是这么叫的。

Dirty Frag,究竟是什么?

Dirty Frag是一个结合了两个独立内核缺陷的漏洞利用链

缺陷1: xfrm-ESP 页面缓存写入 (CVE-2026-43284)

  • 位置: IPsec(VPN中使用的协议)的ESP(封装安全载荷)处理模块
  • 引入: 2017年1月17日的提交
  • 触发条件: 非特权用户必须能够创建命名空间
  • 在Ubuntu中,AppArmor阻止命名空间创建,因此单独无法利用

缺陷2: RxRPC 页面缓存写入 (CVE-2026-43500)

  • 位置: AFS(分布式文件系统)中使用的RxRPC协议模块
  • 引入: 2023年6月的提交
  • 触发条件: 不需要命名空间权限。但是,rxrpc.ko模块本身在某些发行版中缺失

结合使用这两个缺陷是Dirty Frag的核心。如果ESP被阻止,它会转向RxRPC;如果RxRPC缺失,它会转向ESP——根据环境绕过防御。即使在应用了Copy Fail缓解措施(通过algif_aead黑名单阻止)的系统上,Dirty Frag仍然有效。

它做什么: 页面缓存覆盖

Linux将从磁盘读取的文件内容存储在RAM的页面缓存(page cache)中。这是为了减轻频繁读取同一文件的负担。然而,这个页面缓存是受保护的内存。普通用户不能随意写入。

Dirty Frag利用了esp4、esp6和rxrpc“就地(in-place)解密”页面缓冲区的代码路径。如果通过splice(2)或sendfile(2)传入的管道页面直接到达套接字,非特权进程就可以继续持有对该明文页面的引用。结果,就产生了一个写入原语,可以覆盖只读系统文件(例如:/etc/passwd、/etc/shadow、/usr/bin/sudo)的页面缓存。

如果在这里插入root权限授予代码——就大功告成了。与基于竞态条件的漏洞利用不同,这类漏洞是确定性的,并且可靠性非常高。这意味着尝试几乎不会失败。

⏰ “禁运被打破”是什么意思?

在安全行业中,存在一种名为协调披露(Coordinated Disclosure)的惯例。其流程如下:

  1. 研究人员发现漏洞
  2. 私下通知供应商(Linux内核维护者)
  3. 供应商创建补丁,并将其回溯移植到主要发行版
  4. 所有准备工作完成后,在约定日期(禁运解除日)同时公开

这里的禁运(embargo)指的是约定的非公开期。

然而,Dirty Frag打破了这一流程。由于修复程序被逆向工程,漏洞的详细信息在禁运期满之前就被公开了。有人将一个提前合并到公共git树中的补丁提交逆向还原,创建了一个漏洞利用程序并上传到GitHub。结果,虽然补丁已进入主线内核,但官方内核版本尚未发布,大多数发行版正在匆忙发布回溯移植的补丁。

打破禁运不仅仅是“泄露秘密”。这意味着无数尚未应用补丁的系统将在攻击者可见而防御者不可见的状态下度过数日。

受影响的发行版

综合各厂商的公告,几乎所有主流发行版都受到影响。

发行版 状态
Linux Kernel (ESP, ~2017年以后) 受影响
Linux Kernel (RxRPC, ~2023年以后) 受影响
Ubuntu (多个版本) 受影响 (PoC已验证)
RHEL 8 / 9 / 10 受影响
AlmaLinux 8 / 9 / 10 受影响
CentOS Stream 10 受影响
Fedora 最新 受影响
openSUSE Tumbleweed 受影响
OpenShift 4 可能受影响

云虚拟机、裸金属服务器、内部工作站——任何地方都可能受到影响。

️ 立即行动

① 应用内核补丁 (最高优先级)

如果发行版已发布补丁,就没有理由犹豫。

更新后,必须重启才能使新内核生效。

② 如果尚未打补丁,阻止加载易受攻击的模块

⚠️ 注意: 阻止esp4、esp6将导致IPsec VPN无法工作。阻止rxrpc将影响AFS分布式文件系统。在生产环境中应用之前,务必确认依赖关系。

③ IPsec必需环境的次优方案

如果只想阻止ESP变种,可以禁用非特权用户命名空间创建。

⚠️ 但是,此措施可能会影响无根容器、沙盒浏览器和Flatpak的运行,并且无法阻止RxRPC变种。

④ 怀疑被入侵时清空页面缓存

如果已有漏洞利用尝试的迹象,可以将篡改的页面缓存恢复到磁盘原始内容。

当然,这只是应急措施。对于怀疑被入侵的系统,隔离和取证是首要任务。

⚠️ 常见陷阱

  • “我们的系统不使用IPsec” → RxRPC变种与IPsec无关。只要模块可加载即可。
  • “上周已经修补了Copy Fail,所以很安全” → Copy Fail的algif_aead黑名单缓解措施无法阻止Dirty Frag。它们是独立的漏洞。
  • “在容器内所以没关系” → 在应用了默认seccomp配置文件的Kubernetes环境中风险会降低,但虚拟机或限制较少的环境仍然存在风险。
  • 遗漏重启 → 如果只配置了模块阻止但未重启,已加载到内存中的模块将继续存在。

✅ 总结 / 本次事件的启示

  • Dirty Frag = CVE-2026-43284 + CVE-2026-43500, CVSS 7.8 (高危), 页面缓存篡改型LPE
  • IPsec ESP或RxRPC,只要其中一个暴露即可获取root权限
  • 因禁运被打破,PoC提前发布,官方内核版本尚未发布(各发行版正在回溯移植)
  • Dirty COW → Dirty Pipe → Copy Fail → Dirty Frag — 页面缓存篡改系列又一次更新
  • 立即行动: ① 更新内核,② 如果无法更新,则阻止模块,③ 确认依赖关系后重启

页面缓存是为了性能而设计的结构。然而,“如果非特权用户能够以某种方式操纵该页面,就会导致权限提升”的模式已经是第四次出现。您是否愿意打赌1万韩元,下一次披露的漏洞仍将是同一系列?


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注