Dirty Frag(CVE-2026-43284、CVE-2026-43500):Linux 内核本地提权漏洞的影响、修复与缓解

Dirty Frag 让 Linux 本地普通用户可以通过内核漏洞 CVE-2026-43284 和 CVE-2026-43500 获得 root。本文列出修复版本、利用条件、临时缓解办法和容器环境的注意事项。

更正(2026-11-02):本文初版的漏洞编号、修复版本、原理和缓解办法都有错误,“内核 6.6.8、6.5.20、5.15.146 已修复”的说法不成立,过滤分片报文和禁用 RAW 套接字也不是有效的缓解办法。如果你曾按初版判断系统安全,请按下文重新核对。

Dirty Frag 是 2026 年 5 月公开的一组 Linux 内核本地提权漏洞,编号为 CVE-2026-43284(IPsec ESP)和 CVE-2026-43500(RxRPC)。能在机器上以普通账号运行代码的攻击者,可以借它拿到 root,而且利用代码已经公开。处理办法是升级到包含修复的内核;暂时不能升级的,可以先封禁相关内核模块。本文内容截至 2026-11-02,依据 CVE 记录和厂商公告整理。

要点

  • 不能只靠远程报文触发:攻击者要先能在本机运行代码,但一个低权限账号或一段受限的执行权限就够了。
  • 利用很稳定:据研究者说明,它是确定性的逻辑漏洞,不依赖竞争条件,利用失败也不会让内核崩溃。
  • Copy Fail 的缓解办法挡不住它:封禁 algif_aead 模块对 Dirty Frag 无效。
  • 还要一并修复变种 Fragnesia:CVE-2026-46300 的修复版本更晚,CISA 已在 2026-10-28 把它列入已知遭利用漏洞目录。升级目标应同时覆盖它。

漏洞是怎么回事

名字里的 Frag 指内核网络缓冲区 sk_buff 的分页片段,和 IP 分片无关。内核在就地解密报文前,本应确认这些页面归报文私有,这两个漏洞都绕过了这项检查:

  • CVE-2026-43284:通过 splice 挂到 UDP 报文上的页面没有被标记为“共享”,ESP 收包时因此走了不复制数据的快速路径,直接在这些页面上解密。
  • CVE-2026-43500:RxRPC 处理 DATA 和 RESPONSE 报文时,只在报文被克隆的情况下才先复制,同样可能在共享页面上就地解密。

结果是攻击者可以改写页缓存里的数据,包括特权文件的缓存内容,从而获得 root。kernel.org 的 CVE 团队给 CVE-2026-43284 的 CVSS 评分是 8.8,CISA 和 Red Hat 评为 7.8;CVE-2026-43500 各方都评为 7.8。Red Hat 把两者都定为 Important(重要)。

利用条件

漏洞 需要什么 什么情况下走不通
CVE-2026-43284(ESP) CAP_NET_ADMIN,普通用户可以在新建的用户和网络命名空间里获得 禁止非特权用户创建命名空间的系统,例如 Ubuntu 的 AppArmor 策略
CVE-2026-43500(RxRPC) 能创建 RxRPC 套接字,不需要管理员权限 没有 rxrpc 模块的系统。据研究者说明,多数发行版不带这个模块,但 Ubuntu 默认会加载

两个漏洞的条件正好互补,所以研究者把它们组合起来,在 Ubuntu、RHEL、Fedora、openSUSE、CentOS Stream 和 AlmaLinux 的具体版本上做了测试。

修复版本

下表是上游内核的版本。发行版通常把补丁移植到自己的内核,版本号不能直接比较,请以发行版公告为准。

漏洞 受影响起点 上游修复版本
CVE-2026-43284(ESP) 4.11 5.10.255、5.15.205、6.1.171、6.6.138、6.12.87、6.18.28、7.0.5、7.1
CVE-2026-43500(RxRPC) 5.3(CVE 记录) 6.6.140、6.12.88、6.18.29、7.0.6、7.1
CVE-2026-46300(Fragnesia) 3.9 5.10.257、5.15.208、6.1.174、6.6.141、6.12.91、6.18.33、7.0.10、7.1

有两点要注意。CVE-2026-43500 的起点,研究者的说明写的是 2023 年 6 月的提交,和 CVE 记录的 5.3 不一致。它的 CVE 记录也没有列出 5.10、5.15、6.1 分支的修复版本,这些分支要看发行版公告。

各发行版和平台的情况

  • Red Hat:RHEL 8、9、10 及基于其内核的产品受 CVE-2026-43284 和 CVE-2026-46300 影响,不受 CVE-2026-43500 影响。公告 RHSB-2026-003 的状态是已解决,并说明修复已发布。
  • Debian:两个漏洞的修复都在 DSA-6253-1(trixie,6.12.86-1)、DSA-6258-1(bookworm,6.1.170-3)和 DLA-4572-1(bullseye,5.10.251-4)。
  • Ubuntu:缓解办法和修复进展见 Canonical 的说明。
  • OpenShift 4:CVE-2026-43284 的修复版本包括 4.21.15、4.20.22、4.19.31、4.18.41、4.16.62、4.14.66、4.12.90。Fragnesia 的修复版本不同,请查 Red Hat 的文章。
  • GKE:Container-Optimized OS 不带 rxrpc,但受 ESP 路径影响;Ubuntu 节点两条路径都受影响。使用 GKE Sandbox 的容器不受影响。修复版本见公告 GCP-2026-030。

暂时不能升级时怎么缓解

办法一:封禁相关模块。这是研究者给出的办法,会让 IPsec 失效,rxrpc 则用于 AFS。先用 lsmod 确认这些模块没有在用,正在使用的模块无法卸载。

printf 'install esp4 /bin/falseninstall esp6 /bin/falseninstall rxrpc /bin/falsen' > /etc/modprobe.d/dirtyfrag.conf
rmmod esp4 esp6 rxrpc
echo 3 > /proc/sys/vm/drop_caches

升级内核后,删除 /etc/modprobe.d/dirtyfrag.conf 就能恢复。

办法二:禁用非特权用户命名空间。这是 Red Hat 给需要保留 IPsec 的环境的办法,把 user.max_user_namespaces=0 写入 /etc/sysctl.d/dirtyfrag.conf,再运行 sysctl --system。它可能影响 rootless 容器、沙箱浏览器和 Flatpak。RxRPC 路径不依赖命名空间,所以在带 rxrpc 模块的系统上,还要单独封禁这个模块。

这两种都是临时办法,不能代替升级内核。Dirty Frag 由本机操作触发,在边界上过滤分片报文或禁用 RAW 套接字解决不了问题。

容器环境要注意什么

容器和宿主机共用内核。kernel.org 的 CVE 记录说明,利用 CVE-2026-43284 可以从用户和网络命名空间里改写宿主机特权文件的页缓存,进而突破命名空间或沙箱,在宿主机上获得 root。

  • Google 的公告说明,使用 RuntimeDefault seccomp 配置的容器不能调用 unshare,因此不受 ESP 路径影响;显式授予了 CAP_NET_ADMIN 的容器仍受影响。这一条不覆盖 RxRPC 路径。
  • 没有设置 seccomp 配置的 Pod 在很多集群上是 Unconfined,要逐个确认,不要默认已经受保护。
  • Google 和 Red Hat 都建议以非 root 运行工作负载。Red Hat 还提醒,特权 Pod 和使用宿主机命名空间的 Pod 仍是可被利用的攻击面。

排查步骤

  1. 用 uname -r 和包管理器确认内核版本,再对照发行版公告,确认已包含这三个 CVE 的修复。
  2. 用 lsmod | grep -E 'esp4|esp6|rxrpc' 看模块是否已加载,并确认业务是否依赖 IPsec。
  3. 用 sysctl user.max_user_namespaces 看非特权用户能否创建命名空间。
  4. 优先处理多人共用的主机、容器宿主机和 CI 运行节点,这些机器上跑着别人的代码,低权限入口最多。
  5. 升级后重启到新内核,再确认 uname -r 已经变化。只安装不重启,运行中的内核不会变。

常见问题

Dirty Frag 已经被实际利用了吗?

截至 2026-10-30 版本的 CISA 已知遭利用漏洞目录,CVE-2026-43284 和 CVE-2026-43500 都不在其中,但 CISA 记录显示前者已有公开的概念验证代码。没有被列入,不代表没有人利用。同类的 Copy Fail(CVE-2026-31431)和 Fragnesia(CVE-2026-46300)都已列入。

防火墙能挡住吗?

不能。CVE 记录说明,触发需要本地操作,单靠远程报文无法提供利用所需的共享页面。防火墙可以减少攻击者最初进入系统的机会,但挡不住已经进来的人提权。

打完 Copy Fail 的补丁还需要处理吗?

需要。这是不同的漏洞,封禁 algif_aead 也挡不住 Dirty Frag。

怀疑已经被利用,要怎么处理?

研究者提醒,利用过程会污染页缓存,需要清除缓存或重启。但这只是清掉被改写的缓存,不能证明系统没有被入侵。我们建议按入侵事件处理:保留日志,检查新增账号、计划任务和密钥使用情况,必要时重建主机并轮换凭据。

参考资料

如果你需要排查 Linux 内核补丁状态或安排升级窗口,可以通过 DELine 官网联系我们。


以上内容由我们的AI自动发布机器人提供