Docker“CopyEscape”漏洞(CVE-2026-17106)可导致主机文件被覆写及代码执行

admin 2026-08-23 05:10:30 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: DockerCopyEscape漏洞(CVE-2026-17106,CVSS7.1)使dockercp命令成为主机文件写入攻击原语,可导致代码执行。攻击利用容器内文件重命名与符号链接替换的竞态条件,绕过路径检查。影响DockerEngine29.7.2前及Desktop4.86.0前版本。建议立即升级至修复版本,临时措施包括复制前停止容器并避免sudo操作。 综合评分: 87 文章分类: 漏洞分析,安全工具,解决方案,应用安全


cover_image

Docker “CopyEscape” 漏洞(CVE-2026-17106)可导致主机文件被覆写及代码执行

sec随谈 sec随谈

sec随谈

2026年8月18日 13:20 北京

在小说阅读器读本章

去阅读

摘要

Imperva 红队披露了一个 Docker “CopyEscape” 漏洞,该漏洞使普通的 docker cp 命令变成了一个主机文件写入的攻击原语。该漏洞编号为 CVE-2026-17106,CVSS 评分为 7.1,可导致在运行 Docker CLI 的机器上实现代码执行。Docker 随后确认,同一漏洞也影响 sbx cp——这是 Docker Sandboxes(用于 AI 智能体工作流)所使用的文件复制命令。

为何重要

开发者会频繁使用 docker cp 命令,从容器中提取构建产物、测试结果和日志文件。事件响应人员也会使用同一命令,从已怀疑遭到入侵的容器中收集取证证据。这一 Docker CopyEscape 漏洞将这一日常操作变成了一个攻击面。一个恶意容器可以覆写执行复制操作的用户拥有写入权限的任意文件,包括 shell 启动脚本、SSH 配置文件以及持久化相关的位置。在 macOS 上,这意味着受害者下次打开终端时就可能触发代码执行;在 Linux 上,如果管理员或 CI 任务以 sudo 权限运行 docker cp 命令,同样的攻击原语就能触及 root 用户拥有的文件,其中包括 Docker 自身随后即将执行的 runc 二进制文件。由于这一影响会随自动化程度而放大,一个每次构建都会复制构建产物的 CI 流水线,就可能在无人察觉的情况下反复触发这一写入原语。

攻击原理

CVE-2026-17106 串联利用了 Docker 归档处理流程中两个独立的薄弱环节。首先,攻击者控制的容器可以在 Docker 守护进程仍在读取其文件系统以构建 tar 归档文件的过程中,重命名文件并将目录替换为符号链接。这一时间窗口使得守护进程此前已记录的一个目录,能够在归档完成之前变成一个符号链接。Docker 在读取归档文件期间会锁定容器对象,但这一锁定仅保护 Docker 内部的记录信息,并不会暂停容器内部正在运行的进程——这正是造成这一时间窗口漏洞的原因所在。其次,Docker CLI 的解压程序会验证某一版本的文件路径,但在跟随该符号链接后,实际写入的却是另一个不同的路径,导致其边界检查机制与磁盘上实际发生的写入操作并不一致。这两个薄弱环节结合起来,使得在复制过程中植入的符号链接能够指向用户所选文件夹之外的位置,并使后续的归档条目能够通过该符号链接写入主机系统。

受影响版本

该漏洞影响 29.7.2 版本之前的 Docker Engine 和 CLI,以及 4.86.0 版本之前的 Docker Desktop。Docker 发布的 go-archive 安全公告确认了这一漏洞核心归档库的修复版本范围。Docker Sandboxes 直到 8 月 6 日发布的 0.38.0 版本之前也存在同类问题,Docker 的发行说明将其描述为修复了 sbx cp 复制导出功能中的一个”目标路径逃逸”缺陷。Imperva 在 Linux 平台的 Docker Engine 29.6.1 版本以及 macOS 平台的 Docker Desktop 4.81.0 版本上验证了其研究结果。据 Docker 官方披露时间线显示,整个披露流程始于 2026 年 4 月,由于此前一次尝试性修复引入了回归问题,导致修复过程经历了多次延期。

补丁与缓解措施

打补丁可以彻底解决这一 Docker CopyEscape 漏洞。Docker 建议升级至 29.7.2 或更高版本的 Docker Engine 和 CLI,4.86.0 或更高版本的 Docker Desktop,以及 0.38.0 或更高版本的 Docker Sandboxes。对于暂时无法立即打补丁的团队,应在从容器中复制文件之前先停止该容器,因为此次利用所依赖的竞态条件需要一个正在运行的容器。应尽可能避免使用 sudo docker cp 以及其他以 root 权限运行的自动化复制操作。Imperva 的分析报告直言不讳地指出:”归档提取本身就是一道安全边界”,仅靠基于字符串的路径检查是无法真正强制执行这道边界的。对于已经怀疑遭到入侵的容器,应通过一次性账户或隔离的虚拟机来提取证据,而不应在生产环境的工作站上进行操作。目前该漏洞的公开技术分析和概念验证细节已经可以获取,因此打补丁不应再拖延。目前没有任何消息源证实存在实际的野外利用活动。

参考链接:

https://github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:sec随谈 sec随谈 sec随谈《Docker “CopyEscape” 漏洞(CVE-2026-17106)可导致主机文件被覆写及代码执行》

评论:0   参与:  0