概要:
近日,Imperva红队披露了Docker中的一个高危漏洞CVE-2026-17106,该漏洞被称为CopyEscape,可滥用常规的docker cp命令实现主机文件写入,进而导致代码执行。该漏洞CVSS评分为7.1,影响Docker Engine、CLI及Desktop等多个版本,对开发者和运维人员构成严重威胁。
主要内容:
该漏洞源于Docker归档处理流程中的两个弱点。首先,攻击者控制的容器可在Docker守护进程读取文件系统构建tar归档时,通过重命名文件和交换目录为符号链接,制造时间差,使已记录的目录在归档完成前变为符号链接。其次,Docker CLI的提取器在验证文件路径时,会跟随符号链接写入不同位置,导致安全检查与实际写入不一致。攻击者可利用此漏洞覆盖运行docker cp用户可写的任意文件,如shell启动脚本、SSH配置等,在macOS上可导致用户下次打开终端时执行代码;在Linux上,若管理员或CI任务使用sudo运行docker cp,则可覆盖root拥有的文件,包括runc二进制文件。
该漏洞影响Docker Engine和CLI 29.7.2之前版本、Docker Desktop 4.86.0之前版本,以及Docker Sandboxes 0.38.0之前版本。Docker已发布安全公告,建议用户升级至修复版本。无法立即修补的用户,应避免从运行中的容器复制文件,并避免使用sudo docker cp。目前尚未有在野利用的确认,但技术细节和PoC已公开,应尽快修补。