当前位置:首页>Linux>DirtyClone Linux内核提权漏洞曝光:通过克隆数据包即可获取root权限

DirtyClone Linux内核提权漏洞曝光:通过克隆数据包即可获取root权限

  • 2026-10-11 05:52:08
DirtyClone Linux内核提权漏洞曝光:通过克隆数据包即可获取root权限

JFrog安全研究团队于2026年6月25日公开发布了Linux内核高危本地提权漏洞DirtyClone(CVE-2026-43503,CVSS评分8.8)的完整利用分析报告。这是DirtyFrag漏洞家族的第四个成员,允许本地非特权用户通过克隆网络数据包破坏文件支持的内存,从而获得root权限。

漏洞根源:一个丢失的安全标记

DirtyClone的根源在于Linux内核处理socket buffer(skb)片段时,两个辅助函数(__pskb_copy_fclone()和skb_shift())未能正确传播SKBFL_SHARED_FRAG标记位。该标记用于标识数据包内存与磁盘文件共享。当内核内部复制网络数据包时,这一安全标记被丢弃——整个漏洞就此产生。

攻击原理:七步提权链条

攻击者首先将特权二进制文件(如/usr/bin/su)加载至内存页缓存,通过splice和vmsplice将页缓存内存挂载到UDP套接字缓冲区。随后利用unshare -Urn在用户命名空间内获取CAP_NET_ADMIN能力,配置回环IPsec隧道。通过netfilter TEE规则触发数据包经__pskb_copy_fclone()克隆,由于安全标记丢失,克隆包在IPsec解密阶段(esp_input())直接覆写了/usr/bin/su内存副本中的认证逻辑。此后任何用户执行su都将直接获得root权限。

磁盘上的文件始终未被修改,篡改仅存在于内核内存副本中。文件完整性检测工具无法发现异常,攻击不留下任何审计日志,重启即可恢复原始二进制。

影响范围:默认配置下广泛暴露

Debian和Fedora默认启用非特权用户命名空间,本地用户可在新命名空间内获取CAP_NET_ADMIN能力。Ubuntu 24.04及更高版本通过AppArmor限制命名空间创建,可阻止默认攻击路径。页缓存在宿主机层面共享,命名空间内的修改将影响机器上所有进程。

JFrog已在Debian、Ubuntu和Fedora的默认命名空间配置上成功验证了该漏洞。最高风险环境包括多租户服务器、CI运行器、容器宿主机及Kubernetes集群。

DirtyFrag家族:同一缺陷的反复出现

DirtyClone是近期第四个具有相同失效模式的提权漏洞:

漏洞
CVE编号
披露时间
子系统
写入能力
Copy Fail
CVE-2026-31431
2026年4月底
algif_aead
4字节页缓存写入
DirtyFrag
CVE-2026-43284 / CVE-2026-43500
2026年5月7日
IPsec ESP + RxRPC
完整写入原语
Fragnesia
CVE-2026-46300
2026年5月13日
XFRM ESP-in-TCP
任意字节写入
DirtyClone
CVE-2026-43503
2026年6月25日
__pskb_copy_fclone
完整写入原语

原始DirtyFrag研究员Hyunwoo Kim于5月16日提交了覆盖多个剩余片段传输辅助函数的更广泛补丁。该综合修复于5月21日合并至主线(commit 48f6a5356a33),5月23日分配CVE编号,5月24日在Linux v7.1-rc5中发布。

修复与缓解

立即更新: 安装Linux内核至v7.1-rc5或应用发行版提供的CVE-2026-43503反向移植补丁。Debian、Ubuntu和SUSE已发布安全公告。

临时缓解(无法立即修补时):

  • 限制非特权用户命名空间:在Debian/Ubuntu上设置kernel.unprivileged_userns_clone=0

  • 黑名单内核模块:esp4、esp6和rxrpc(会破坏IPsec和AFS功能)

根本问题:契约缺陷

这不是单个辅助函数的错误,而是一个契约问题:每个移动skb片段的代码路径都必须每次都保留共享片段标记位。内核的零拷贝网络允许文件支持的内存充当数据包数据,链条中任何一处被丢弃的标记都会将性能优化转化为写入原语。任何移动片段描述符而未传播SKBFL_SHARED_FRAG标记的函数都可能成为新的CVE。

DirtyFrag漏洞家族很可能尚未终结。

最新文章

随机文章