JFrog 安全研究团队于 6 月 25 日公开了 CVE-2026-43503 漏洞的完整利用流程,该漏洞 CVSS 评分为 8.8,也就是被命名为 DirtyClone 的 Linux 内核权限提升漏洞。这是 DirtyFrag 漏洞家族出现的第四个安全缺陷,所有同源漏洞都源于同一个底层缺陷:把基于文件的内存当作数据包处理,网络原地写入操作直接修改内存,而没有执行内存拷贝。如果你的内核还没有打上 5 月 21 日主线版本补丁,请立即升级。
JFrog 在报告中写道:“该漏洞危害极高,任意无权限本地用户都可以通过篡改 Linux 页缓存实现本地提权(LPE),获取 Root 管理员权限。该攻击全程静默,不会留下内核日志与审计记录,还能够绕过主流磁盘完整性监控工具。”
攻击者将 /usr/bin/su 等高权限程序加载到内存,把对应的内存页封装进网络数据包,并迫使内核经由攻击者可控的本地回环 IPsec 隧道复制这份数据。解密过程会用自定义数据覆盖程序的身份校验逻辑,再次执行 su 命令就能拿到 Root 权限,而磁盘上的原始文件不会发生任何改动。
该漏洞利用需要 CAP_NET_ADMIN 权限来搭建 IPsec 环境。在 Debian 与 Fedora 系统中,默认开启非特权用户命名空间,普通本地用户就能获取这项权限。
报告中写道:“攻击者首先新建一个独立网络命名空间:unshare -Urn执行后即可在该命名空间内获得网络管理权限。权限作用域仅局限于命名空间,但页缓存是主机全局共享的。一旦通过共享映射篡改了文件内存页,修改结果会同步影响所有调用该内存页的进程。”
Ubuntu 24.04 及后续版本通过 AppArmor 限制了命名空间创建,阻断了这条默认利用链路;其余保持默认命名空间配置的发行版均面临风险。
目前 DirtyFrag 漏洞家族已出现 4 个成员:4 月下旬爆出 Copy Fail(CVE-2026-31431);5 月 7 日披露 DirtyFrag(CVE-2026-43284、CVE-2026-43500);5 月 13 日出现 Fragnesia(CVE-2026-46300),该漏洞利用 skb_try_coalesce () 函数的标志位清除缺陷,绕过了 DirtyFrag 的修复补丁。
报告介绍:“DirtyFrag 属于 Linux 内核网络协议栈的内存破坏漏洞,问题出在套接字缓冲区(skb)对共享页缓存内存的引用逻辑。攻击者可以借助 XFRM/IPsec、RxRPC 等子系统的原地加密解密操作,把该缺陷制作为攻击载荷。DirtyFrag、Fragnesia、DirtyClone 虽然攻击的数据包复制、转发路径各不相同,但核心手段完全一致:欺骗内核,将只读的文件映射页缓存当成可写的网络缓冲区。”
早期补丁只封堵了单条代码路径,其余风险点依然敞开。内核有一条基础约束:所有处理套接字分片的函数,必须始终保留 shared-frag 共享分片标志,但这条规则始终没有在全网栈代码中全面落地。
最早发现 DirtyFrag 漏洞的研究员金铉宇,在 5 月 16 日提交了覆盖全部分片处理函数的大范围修复补丁。JFrog 团队在 5 月 19 日独立发现了另一个受影响函数,编写了可运行 EXP 并完成上报。整合后的修复代码于 5 月 21 日合并进主线内核,CVE-2026-43503 在 5 月 23 日正式公开,5 月 24 日发布的 Linux v7.1-rc5 是首个修复版本。目前 Ubuntu、Debian、SUSE 都已发布安全公告,红帽也已录入 Bugzilla 工单。
如果暂时无法安装补丁,可以采用两种缓解方案缩小攻击面:
- 在 Debian、Ubuntu 系统中将 kernel.unprivileged_userns_clone=0,阻止普通用户通过命名空间拿到 CAP_NET_ADMIN 权限;
- 拉黑 esp4、esp6、rxrpc 内核模块,移除漏洞依赖的原地解密基础能力,代价是 IPsec 与 AFS 服务无法正常运行。
以上仅为临时缓解手段,不能彻底根除风险。DirtyFrag 这类漏洞大概率还会出现新变种:任何分片传输函数一旦中途丢失 shared-frag 标志,就可能衍生出新漏洞,而对内核网络栈所有这类代码路径进行全面审计,仍是一项庞大且尚未收尾的工作。