最近 Linux 内核连续出现几个高关注度的本地提权漏洞:Dirty Frag、Copy Fail 和 Fragnesia。它们看起来像一组“同类事件”,因为最终效果都很接近:低权限本地用户可能把权限提升到 root。
但从运维处置角度看,不能把它们混成一个漏洞。三者的入口模块、触发路径、缓解方式和补丁节奏都不同。更准确的理解是:它们暴露了 Linux 内核在“页缓存、splice、socket buffer、加密路径”这些复杂交界处的共同风险。
本文只做风险和处置分析,不展开可复现利用步骤。
三个漏洞分别是什么
Dirty Frag:CVE-2026-43284
Dirty Frag 主要指向 Linux 内核网络路径里的页缓存写入问题。公开资料中,它通常和两个问题一起讨论:xfrm-ESP 侧的 CVE-2026-43284,以及 rxrpc 侧的 CVE-2026-43500。
其中 CVE-2026-43284 与 ESP 处理共享 skb fragment 时的原地解密有关。问题的关键不是攻击者直接修改磁盘文件,而是让内核在不该写的共享页上发生写入,进而影响页缓存里的文件内容。
运维上最需要记住的是:Dirty Frag 触达的是 esp4、esp6、rxrpc 这一组内核模块和网络子系统路径。它和 IPsec、ESP、RxRPC 相关,临时缓解也会围绕这些模块展开。
Copy Fail:CVE-2026-31431
Copy Fail 是 Theori / Xint Code 披露的 Linux 内核本地提权漏洞。它的入口不在 IPsec 网络路径,而在内核用户态加密 API 的 algif_aead / AF_ALG 相关路径。
公开说明中提到,它源于 2017 年引入的一处原地优化:某些情况下,内核没有按预期复制数据,而是把页缓存页放进可写目标路径里。攻击者可以借助 AF_ALG 与 splice() 组合,对页缓存支持的页面做小范围可控写入。
它的风险点在于可利用性很强,而且影响面跨多个主流发行版。和 Dirty Frag 不同,Copy Fail 的临时缓解重点是限制或禁用 algif_aead,以及在容器和 CI 环境中限制 AF_ALG socket。
Fragnesia:CVE-2026-46300
Fragnesia 是 V12 Security 披露的另一个 Linux 内核本地提权漏洞,和 Dirty Frag 属于相近攻击面。它不是 Dirty Frag 的同一个 bug,但仍然围绕 IPsec ESP / rxrpc 相关模块,以及页缓存写入效果展开。
AlmaLinux 的说明把它定位为同一代码区域里的第三个本地 root 问题。其关键点在于 skb_try_coalesce() 在合并 socket buffer 片段时没有正确保留共享 fragment 标记,导致后续 XFRM ESP-in-TCP 接收路径可能在外部页缓存页上做原地解密。
也就是说,Fragnesia 和 Dirty Frag 更接近:两者都绕着 esp4、esp6、rxrpc、skb fragment、ESP 解密路径转。它们的临时缓解也高度重叠。
相同点:为什么都危险
这三个漏洞的共同点不是“代码位置完全一样”,而是攻击结果和风险模型非常像。
第一,它们都是本地提权。攻击者通常需要先在机器上获得普通用户代码执行能力,然后再把权限提升到 root。对单用户桌面来说,它不是远程一键入侵;但对多用户服务器、CI runner、容器宿主机、共享开发机和暴露 SSH 的 VPS 来说,低权限入口并不罕见。
第二,它们都和页缓存写入有关。攻击者不一定永久改写磁盘文件,而是影响内存中的页缓存副本。这会让传统文件完整性检查变得不够可靠:磁盘 hash 可能正常,但执行路径读到的页缓存内容已经被污染。
第三,它们都偏向确定性逻辑漏洞,而不是传统意义上很吃时序的竞争条件。公开资料多次强调这类漏洞不依赖赢得 race condition。对防守方来说,这意味着“利用成功率”不能按老经验低估。
第四,它们都放大了容器和自动化执行环境的风险。容器内的低权限代码、CI 任务、构建脚本、第三方插件,一旦能触达宿主内核相关接口,就可能把漏洞从“本地问题”变成“平台问题”。
不同点:不要用一个补丁思路套全部
三者最大的区别在入口模块。
Copy Fail 的关键入口是 algif_aead / AF_ALG,属于内核用户态加密 API。它的临时防护重点是禁用或限制 algif_aead,以及用 seccomp 阻断容器里创建 AF_ALG socket。
Dirty Frag 的关键入口在 xfrm-ESP 和 rxrpc。它更接近网络协议和 socket buffer 处理路径,临时防护通常会考虑禁用 esp4、esp6、rxrpc。但这可能影响 IPsec、VPN、隧道或相关网络能力。
Fragnesia 的入口也在 Dirty Frag 相近区域,但具体问题落在 skb_try_coalesce() 没有保留共享 fragment 标记。它更像是 Dirty Frag 风险面里的另一个分支,而不是 Copy Fail 的加密 API 问题。
所以,不能因为已经处理了 Copy Fail,就认为 Dirty Frag 和 Fragnesia 也被覆盖;也不能因为禁用了 esp4 / esp6,就认为 Copy Fail 自动消失。它们需要分别确认补丁状态和缓解策略。
影响范围该怎么判断
判断这类漏洞是否受影响,不要只看发行版名字,也不要只看内核大版本号。发行版会回合补丁,云厂商会维护自己的内核分支,企业发行版还可能有额外 backport。
更稳妥的顺序是:
- 先看发行版安全公告和内核包 changelog。
- 再核对 CVE 是否已被当前内核包修复。
- 对云主机、容器宿主机和 CI 节点,额外关注云厂商或平台方公告。
- 对临时缓解,确认业务是否依赖对应模块。
- 完成内核升级后安排重启,确保实际运行内核已经切换。
这一步最容易踩坑的是“包已经更新,但机器还没重启”。内核漏洞不是普通用户态服务升级,安装新包之后,旧内核仍可能继续运行。
运维优先级
这些漏洞最该优先处理的机器,不是“所有 Linux 平均排队”,而是低权限代码最容易出现的地方。
优先级最高的环境包括:
- 多用户登录服务器
- CI / CD runner
- 构建机和制品打包机
- 容器宿主机和 Kubernetes 节点
- 共享开发机
- 暴露 SSH 的云主机和 VPS
- 运行第三方脚本、插件、任务队列的平台
- 有 Web 漏洞、弱口令或历史入侵痕迹的机器
相对封闭、单用户、没有外部代码执行入口的机器,风险仍然存在,但处置顺序可以排在后面。
临时缓解应该怎么理解
临时缓解不是补丁替代品。它的价值是帮你在无法立刻重启或等待发行版补丁时降低暴露面。
对 Copy Fail,重点关注 algif_aead 和 AF_ALG。如果业务没有使用内核 AF_ALG 加密接口,可以评估禁用相关模块;容器环境则应优先检查 seccomp 策略,避免不受信任工作负载随意创建对应 socket。
对 Dirty Frag 和 Fragnesia,重点关注 esp4、esp6、rxrpc。如果系统不依赖 IPsec ESP、相关 VPN、隧道或 RxRPC,可以评估临时禁用。但生产环境不要盲目执行,因为这些模块可能影响真实网络业务。
最终仍然要回到内核更新。临时缓解只能减少攻击面,不能证明系统已经彻底安全。
这三个漏洞说明了什么
这组漏洞真正值得警惕的地方,不只是 CVE 数量,而是它们都集中在内核高复杂度路径:零拷贝、splice、socket buffer、页缓存、加密接口、协议栈优化。
这些路径的共同特点是性能收益很大,但所有权边界也更难维护。一个 fragment 是否共享、一个页面是否还能原地写、一个优化是否真的只是减少复制,都会变成安全边界的一部分。
对安全团队和运维团队来说,结论很实际:
- 本地提权漏洞要按“已有低权限入口会被放大”处理。
- 容器不是内核漏洞的天然隔离边界。
- 文件完整性检查不能只看磁盘内容。
- CI、构建机、插件平台要当成高优先级资产。
- 内核补丁需要验证“已安装”和“已运行”两个状态。
小结
Dirty Frag、Copy Fail 和 Fragnesia 都是近期 Linux 本地提权风险里的高优先级事件,但它们不是同一个漏洞的三个名字。
Copy Fail 走的是 algif_aead / AF_ALG 加密接口路径;Dirty Frag 走的是 xfrm-ESP 与 rxrpc 相关路径;Fragnesia 则在 Dirty Frag 相近攻击面上,通过 skb fragment 标记处理问题再次触发页缓存写入风险。
处置上,最稳妥的做法是:按发行版公告升级内核并重启;对无法立即升级的系统,分别按漏洞入口评估临时禁用模块或收紧 seccomp;对多租户、CI、容器宿主机和共享开发环境优先处理。
参考资料:
- Theori Copy Fail 说明:https://github.com/theori-io/copy-fail-CVE-2026-31431
- CERT-EU Copy Fail 安全公告:https://cert.europa.eu/publications/security-advisories/2026-005/
- AlmaLinux Dirty Frag 说明:https://almalinux.org/blog/2026-05-07-dirty-frag/
- AlmaLinux Fragnesia 说明:https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/
- V12 Security Fragnesia PoC 说明:https://github.com/v12-security/pocs/tree/main/fragnesia