Linux 内核中发现了一个严重的本地权限提升漏洞,该漏洞允许非特权本地用户通过操纵系统页面缓存无缝获得 root 权限。
该漏洞编号为 CVE-2026-43503,它代表了 XFRM/IPsec 子系统数据包处理路径中的一个严重漏洞,该漏洞绕过了先前的缓解措施。攻击者利用此漏洞可以执行静默的系统入侵,不会留下任何内核日志或审计痕迹。
JFrog 安全研究团队在对近期内核补丁进行全面审核时发现了这一遗留问题,并将新发现的变种命名为“DirtyClone”。该漏洞的 CVSS 评分为 8.8,属于高危漏洞,需要系统管理员立即关注。
这一发现揭示了一种更广泛的利用模式,该模式影响多个套接字缓冲区处理路径,证明底层攻击原语远远超出了单个易受攻击的代码路径。
该缺陷源于更广泛的 DirtyFrag 漏洞家族,该家族的目标是套接字缓冲区如何引用共享页面缓存内存。
DirtyFrag、Fragnesia 和 DirtyClone 等变体都依赖于一种共同的技术,即欺骗内核将只读的、文件支持的页面缓存内存视为可写的网络缓冲区。
| 漏洞 | CVE | 已披露 | 子系统 | 写入原始 | 需要root权限吗? |
|---|
| 复制失败 | CVE-2026-31431 | 2026年4月30日 | algif_aead(AF_ALG 加密) | 4字节页面缓存写入 | 不 |
| DirtyFrag | CVE-2026-43284 / CVE-2026-43500 | 2026年5月8日 | IPsec ESP (xfrm) + RxRPC | 完全写入原语(链式) | 不 |
| 弗拉格尼西亚 | CVE-2026-46300 | 2026年5月14日 | XFRM ESP-in-TCP | 任意字节写入 | 不 |
| DirtyClone | CVE-2026-43503 | 2026年5月23日 | 通过 netfilter TEE 实现 XFRM/IPsec | 标志位已丢弃 __pskb_copy_fclone(),由 TEE 网络过滤器规则触发 | 不 |
当这些不同的内存上下文相交时,内核可能会无意中修改仍然在语义上与文件关联的内存,从而直接导致文件支持的数据严重损坏。
这种攻击模型对启用了用户命名空间的多租户云环境、Kubernetes 集群和容器化工作负载构成最高风险。
任何主线、稳定版或长期支持内核分支,如果应用了初始缓解措施但缺少后续补丁,仍然极易受到这些特定绕过措施的影响。
要执行 DirtyClone 攻击,本地用户必须持有或获得 CAP_NET_ADMIN 权限,而该权限通常可以通过非特权用户命名空间获得。
攻击者首先映射一个特权二进制文件,例如/usr/bin/su,使其直接加载到主机的页面缓存中。
vmsplice内核使用诸如 `get_page_cache_memory`和`get_page_cache_memory` 之类的系统调用splice,将这个由页面缓存支持的内存附加到套接字缓冲区中,而不是执行安全内存复制。
攻击者随后配置基于环回地址的 IPsec 隧道和使用 TEE 目标的网络过滤规则,以复制出站数据包。这种精确的路由触发了nf_dup_ipv4该函数,从而导致套接字缓冲区克隆__pskb_copy_fclone。
在此克隆过程中,克隆的缓冲区未能正确保留SKBFL_SHARED_FRAG标志,该标志是内核的安全标记,指示缓冲区引用共享页面内存。
当克隆的数据包到达 IPsec 接收路径进行就地解密时,内核会将解密后的数据直接写入文件支持的页面。
通过控制 AES-CBC 密钥等加密参数,攻击者将此解密例程转换为受控写入原语。
这使得攻击者能够在不更改物理磁盘上实际文件的情况下,修改缓存二进制文件中的一小段指令序列。当被篡改的二进制文件执行时,修改后的逻辑会立即运行并授予攻击者 root 权限。
该漏洞的披露和修复在2026年5月的几周内迅速完成,避免了单独或长时间的暴露过程。最初的DirtyFrag补丁于5月4日合并到主线内核中,随后Fragnesia变种于5月13日被披露。
5 月 16 日,DirtyFrag 的原研究员 Hyunwoo Kim 提交了一份更广泛的报告,详细介绍了整个网络堆栈中剩余的片段传输辅助程序差距。
JFrog于 5 月 19 日独立地重新发现了该特定变体,并向 Linux 内核维护者报告了此事。针对这些变体的综合补丁已于 5 月 21 日成功合并到主线内核中,版本为 v7.1-rc5。