最新消息:关注人工智能 AI赋能新媒体运营

Docker漏洞可让黑客在主机内写入文件

科技资讯 admin 浏览

安全厂商Imperva发现,Docker存在一项重大漏洞,可让攻击者在云端容器中写入任意文件。

问题出在Docker Compose,它能将多个容器组合成一个完整服务。Docker Compose支持多种开发任务,是运行在Docker Engine之上的一层工具,可通过几行YAML代码构建可运行的应用程序。

2025年10月初,Imperva在研究Docker Compose对OCI构件的支持时,发现其存在高危路径遍历漏洞。该漏洞允许攻击者绕过Compose的缓存目录,在主机系统上写入任意文件。该漏洞编号为CVE-2025-62725,风险评分为CVSS 8.9,已由Docker团队修复。

Docker Compose支持将OCI构件推送到远程仓库,以便开发人员可在Docker仓库中执行Compose项目,并通过include:指令在目标主机上调用该构件。在运行过程中,Compose会获取OCI清单,下载所有层(layer)及标注(annotation),并在本地缓存目录中重构项目。根据这些标注,Compose会将文件写入本地,甚至可扩展主项目定义。

但Compose在处理OCI层时,完全信任层标注中指定的写入路径。研究人员指出,漏洞源于Docker Compose的pkg/remote/oci.go文件中的函数(如pullComposeFiles、writeComposeFile、writeEnvFile),在处理OCI层标注时,直接将标注值与本地缓存路径拼接,未进行路径规范化与边界检查。这使得恶意标注可突破缓存目录限制,导致Compose将文件写入其有权限访问的任意位置。通过OCI构件中的标注指令,如docker compose ps或docker compose config,即可触发该漏洞。

研究人员设计了一种概念验证攻击方法。攻击者可搭建一个OCI仓库,诱导受害者使用包含路径遍历层的恶意OCI构件,当受害者执行Compose命令时,Compose会在其缓存目录下写入YAML片段,进而覆盖~/.ssh/authorized_keys文件,植入攻击者的公钥,从而获得SSH访问权限。此外,该手法还可覆盖其他系统或应用文件,进一步实现远程代码执行(RCE)或建立持久化后门。

受影响的环境包括Docker Desktop、Linux独立版Compose、CI/CD运行器以及任何会解析远程OCI构件的云开发环境。

Docker团队已于10月底修复该漏洞,在Docker v2.40.2版本中新增了路径规范化与标注验证功能,可拒绝解析缓存目录外或包含绝对路径的构件。研究人员强烈建议用户尽快升级至该版本或更高版本。