DirtyFrag:2026年严重的Linux本地提权漏洞深度分析

admin 2026-05-11 08:22:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: DirtyFrag是2026年披露的Linux内核本地提权漏洞,通过链式利用xfrm-ESP和RxRPC两个页缓存写入缺陷,使无特权用户可稳定获取root权限。该逻辑漏洞影响2017年至今的内核版本,绕过CopyFail缓解措施且PoC已公开。建议立即通过模块黑名单禁用esp4/esp6/rxrpc模块,并关注各发行版官方补丁。 综合评分: 90 文章分类: 漏洞分析,漏洞预警,应急响应,红队,内网渗透


cover_image

Dirty Frag:2026年严重的 Linux 本地提权漏洞深度分析

酷酷信安

2026年5月8日 18:11 四川

在小说阅读器读本章

去阅读

01

1概述

Dirty Frag 是一个于 2026 年 5 月公开披露的 Linux 内核本地提权漏洞(Local Privilege Escalation, LPE),CVE编号尚待分配。该漏洞通过链式利用两个独立的页缓存写入缺陷,使任意无特权本地用户能够在几乎所有主流 Linux 发行版上获取 root 权限,且攻击一条命令即可完成。

该漏洞与历史上著名的 Dirty COW(CVE-2016-5195) 和 Dirty Pipe(CVE-2022-0847) 同属一类漏洞,但攻击目标是内核 struct sk_buff 的 frag 成员,因此命名为 Dirty Frag。

02

漏洞发现与披露背景

发现者

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

披露时间线

由于禁运提前被打破,两个子漏洞均未分配 CVE 编号,且公开的 PoC 已在互联网广泛流传。

03

技术原理深度解析

3.1 漏洞类别:页缓存写入(Page-Cache Write)

Dirty Frag 属于页缓存污染类漏洞。其核心机制是:

  1. splice() / MSG_SPLICE_PAGES 零拷贝路径允许用户空间将只读页缓存页面(如 /etc/passwd、/usr/bin/su)的引用植入发送方 socket buffer(skb)的 frag 槽位。

  2. 内核在接收路径进行原地(in-place)加密运算时,直接在该 frag 上操作,从而永久修改 RAM 中的页缓存内容。

这是一个纯逻辑漏洞,不依赖竞争条件,不会导致内核崩溃,首次攻击即可成功。


3.2 子漏洞一:xfrm-ESP 页缓存写入

位置: esp_input() — IPsec ESP 接收路径(esp4/esp6 模块)

引入时间: 内核 commit cac2661c53f3,2017 年,漏洞已存在约 9 年。

触发路径:

用户空间 splice(2) → 植入只读页缓存 frag → esp_input()

→ 跳过 skb_cow_data() COW 检查

→ 直接对 frag 执行 AEAD 原地解密

→ 页缓存被覆写

关键问题: 当 skb 是非线性(non-linear)但无 frag list 时,代码跳过了强制的 skb_cow_data() 缓冲区分配步骤,直接对攻击者植入的 frag 进行原地 AEAD 解密。

利用方式: 通过 XFRMA_REPLAY_ESN_VAL netlink 属性,攻击者可以精确控制每次写操作的文件偏移量(位置)和写入值(4字节),实现对 /usr/bin/su 等 SUID

程序页缓存的任意字节覆写。


3.3 子漏洞二:RxRPC 页缓存写入

位置: rxkad_verify_packet_1() — RxRPC/rxkad 子系统

引入时间: 2023 年 6 月

关键特点:

  • 无需任何命名空间特权(user namespace 等)
  • 执行 8 字节 pcbc(fcrypt) 原地解密,直接作用于同类型的 splice 固定页
  • 攻击者可在用户空间完全暴力穷举合适的解密密钥,再触发内核写操作,整个过程完全确定性,无随机性

3.4 链式利用策略

两个子漏洞互相补盲:

攻击者二进制

├── 尝试 xfrm-ESP exploit

│ 适用:大多数内核版本(2017–2026)

│ 需要:可以加载 esp4/esp6 模块

└── 尝试 RxRPC exploit

适用:2023-06 至今的内核

优势:无需任何特权,可绕过 Copy Fail 缓解措施

两者串联后,单个二进制可在所有主流发行版上获取 root。


3.5 绕过 Copy Fail 缓解措施

▎ “Dirty Frag 无论 algif_aead 模块是否可用均可触发。换句话说,即使在已应用 Copy Fail 公开缓解措施(algif_aead 黑名单)的系统上,你的 Linux 对 Dirty Frag 依然脆弱。”

▎ — Hyunwoo Kim


四、影响范围

受影响的发行版

影响内核版本范围:

  • ESP 子漏洞:2017年(commit cac2661c53f3)至今,约 9 年

  • RxRPC 子漏洞:2023年6月至今

五、漏洞严重性分析

六、补丁状态

七、缓解措施

7.1 立即缓解(推荐)

若服务器不依赖 IPsec VPN 隧道,立即执行:

sudo 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; true"

此命令将:

  1. 将上述模块加入黑名单,防止自动加载

  2. 尝试卸载已加载的模块

▎ 警告: esp4/esp6 是 IPsec 的内核 ESP 变换模块。禁用它们将破坏依赖内核数据路径的 IPsec 隧道(如 strongSwan、Libreswan)。使用 IPsec VPN 的服务器需权衡利弊。

7.2 系统加固措施(纵深防御)

  • 确保 SELinux 处于强制模式(enforcing)
  • 限制 SSH 访问,减少本地账户暴露面
  • 容器环境中使用默认 Security Context Constraints(SCC)
  • 工作负载以非 root 运行
  • 限制 oc debug 访问权限(OpenShift 环境)

7.3 等待官方补丁

各发行版正在积极回溯补丁,建议关注官方安全公告:

  • AlmaLinux 已率先发布测试补丁

  • CloudLinux 提供 KernelCare 无重启实时补丁

  • 其他发行版补丁陆续发布中


八、攻击指标(IoC)

已发现与该漏洞相关的 Bash 脚本 IoC,该脚本自动化完成:

  1. 准备 payload

  2. 编译 exploit 二进制

  3. 执行提权操作

相关脚本已被 Imunify360 加入黑名单。

九、与历史”Dirty”系列漏洞对比

总结:

Dirty Frag 是迄今为止最危险的”Dirty”系列漏洞之一。其核心危险性在于:

  1. 9年历史积累,影响范围极广

  2. 纯逻辑漏洞,利用可靠、无崩溃风险

  3. 绕过已知缓解措施(Copy Fail 的 algif_aead 黑名单无效)

  4. 禁运被打破,补丁就绪前 PoC 已公开

  5. WSL2 也受影响,攻击面延伸至 Windows 用户

建议所有 Linux 系统管理员立即评估并应用模块黑名单缓解措施,并持续关注各发行版官方补丁动态。

参考链接:

[官方通告] Red Hat (RHSB-2026-003)https://access.redhat.com/security/vulnerabilities/RHSB-2026-003

[概念验证] GitHub – V4bel/dirtyfrag该漏洞的公开 PoC (概念验证代码),证明漏洞可被稳定利用。

[开源社区] Phoronix报道了 Dirty Frag 漏洞被过早公开对 Linux 上游维护者造成的被动局面。

[安全资讯] CyberSecurityNews聚焦于该 Linux 漏洞对全球网络安全设备和服务器的潜在冲击。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:酷酷信安 《Dirty Frag:2026年严重的 Linux 本地提权漏洞深度分析》

评论:0   参与:  0