
Docker容器编排工具Compose披露了一个高危路径遍历漏洞(CVE-2025-62725,CVSS v4评分8.9),该漏洞影响Docker Desktop用户、独立Compose二进制文件用户、CI/CD流水线以及云开发环境。
漏洞原理分析
根据安全公告,"Docker Compose会信任远程OCI compose构件中嵌入的路径信息。当某个层包含com.docker.compose.extends或com.docker.compose.envfile注解时,Compose会将攻击者提供的com.docker.compose.file或com.docker.compose.envfile值与其本地缓存目录拼接,并将文件写入该位置。"
这一设计缺陷导致攻击者能够实施路径遍历攻击,突破Compose缓存目录限制,覆写主机系统上的任意文件。
受影响范围
安全公告强调该漏洞影响范围广泛且严重,涉及"任何解析远程OCI compose构件的平台或工作流"。实际受影响场景包括:
- Docker Desktop安装环境
- 基于Linux的独立Compose二进制文件
- 持续集成运行环境
- 云开发者沙箱环境
值得注意的是,漏洞利用无需构建或运行容器。仅通过执行docker compose config或docker compose ps等只读命令即可触发漏洞,这些命令通常在配置验证或CI代码检查阶段执行。
攻击危害评估
项目维护者警告称:"攻击者可以突破缓存目录限制,覆写运行docker compose的机器上的任意文件,即使用户仅执行docker compose config或docker compose ps等只读命令。"
这意味着处理不受信任OCI Compose文件(例如来自远程注册表或第三方来源)的开发人员或自动化流水线面临重大风险。
技术根源剖析
漏洞根源在于Docker Compose处理OCI构件层及其注解的方式。OCI(开放容器计划)构件允许Compose文件进行远程分发和版本控制。
然而,v2.40.2之前的Docker Compose版本会隐式信任这些层中的注解值——特别是使用com.docker.compose.extends和com.docker.compose.envfile键的注解。攻击者通过注入恶意相对路径(如../../../../../etc/passwd),可诱使Compose在其预期缓存目录之外写入文件,从而覆写系统文件或敏感配置数据。
修复方案
Docker已在Docker Compose v2.40.2版本中发布补丁,该版本引入了更严格的注解路径验证和清理机制。
参考来源:
Docker Compose Path Traversal (CVE-2025-62725) Allows Arbitrary File Overwrite via OCI Artifacts
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



