Docker 安全公告
Docker Desktop 4.44.3 安全更新:CVE-2025-9074
最后更新于 2025 年 8 月 20 日
Docker Desktop 中的一个漏洞已于 8 月 20 日在 4.44.3 版本中修复
- 修复了 CVE-2025-9074,该漏洞允许在 Docker Desktop 上运行的恶意容器访问 Docker Engine 并在无需挂载 Docker socket 的情况下启动额外的容器。这可能导致未经授权地访问主机系统上的用户文件。增强容器隔离 (ECI) 无法缓解此漏洞。
Docker Desktop 4.44.0 安全更新:CVE-2025-23266
最后更新于 2025 年 7 月 31 日
我们已知悉 CVE-2025-23266,这是一个影响 NVIDIA Container Toolkit 在 CDI 模式下版本最高为 1.17.7 的严重漏洞。Docker Desktop 包含 1.17.8 版本,不受此影响。但是,捆绑了早期工具包版本的旧版 Docker Desktop 如果手动启用了 CDI 模式,可能会受到影响。升级到 Docker Desktop 4.44 或更高版本以确保您使用的是已修补的版本。
Docker Desktop 4.43.0 安全更新:CVE-2025-6587
最后更新于 2025 年 7 月 3 日
Docker Desktop 中的一个漏洞已于 7 月 3 日在 4.43.0 版本中修复
- 修复了 CVE-2025-6587,该漏洞导致敏感系统环境变量包含在 Docker Desktop 诊断日志中,从而可能导致密钥泄露。
Docker Desktop 4.41.0 安全更新:CVE-2025-3224、CVE-2025-4095 和 CVE-2025-3911
最后更新于 2025 年 5 月 15 日
Docker Desktop 中的三个漏洞已于 4 月 28 日在 4.41.0 版本中修复。
- 修复了 CVE-2025-3224,该漏洞允许具有用户机器访问权限的攻击者在 Docker Desktop 更新时执行权限提升。
- 修复了 CVE-2025-4095,该漏洞导致在使用 MacOS 配置配置文件时,不强制执行注册表访问管理 (RAM) 策略,从而允许用户从未经批准的注册表拉取镜像。
- 修复了 CVE-2025-3911,该漏洞允许具有用户机器读取访问权限的攻击者从 Docker Desktop 日志文件中获取敏感信息,包括为运行容器配置的环境变量。
我们强烈建议您更新到 Docker Desktop 4.41.0。
Docker Desktop 4.34.2 安全更新:CVE-2024-8695 和 CVE-2024-8696
最后更新于 2024 年 9 月 13 日
由 Cure53 报告的 Docker Desktop 中与 Docker Extensions 相关的两个远程代码执行 (RCE) 漏洞已于 9 月 12 日在 4.34.2 版本中修复。
- CVE-2024-8695:在 Docker Desktop 4.34.2 之前的版本中,通过精心制作的扩展描述/更新日志,恶意扩展可能利用远程代码执行 (RCE) 漏洞。[严重]
- CVE-2024-8696:在 Docker Desktop 4.34.2 之前的版本中,通过精心制作的扩展发布者 URL/附加 URL,恶意扩展可能利用远程代码执行 (RCE) 漏洞。[高危]
在扩展市场中未发现利用这些漏洞的现有扩展。Docker 团队将密切监控并认真审查所有发布新扩展的请求。
我们强烈建议您更新到 Docker Desktop 4.34.2。如果您无法及时更新,可以禁用 Docker Extensions 作为临时解决方案。
启用 SSO 后,CLI 密码登录功能将弃用
最后更新于 2024 年 7 月
当首次引入 SSO 强制执行时,Docker 提供了一段宽限期,以允许在使用 Docker CLI 对 Docker Hub 进行身份验证时继续使用密码。这样做是为了让组织能够更轻松地使用 SSO 强制执行。建议配置 SSO 的管理员鼓励使用 CLI 的用户切换到个人访问令牌,以应对宽限期结束。
2024 年 9 月 16 日,宽限期将结束,当 SSO 强制执行时,将不再允许通过 Docker CLI 使用密码对 Docker Hub 进行身份验证。受影响的用户需要切换到使用 PATs 才能继续登录。
在 Docker,我们希望为开发人员和组织提供最安全的体验,而此弃用是朝着这个方向迈出的重要一步。
SOC 2 Type 2 认证和 ISO 27001 认证
最后更新于 2024 年 6 月
Docker 很高兴地宣布,我们已获得 SOC 2 Type 2 认证和 ISO 27001 认证,没有任何例外或重大不合规之处。
安全是 Docker 运营的基本支柱,它融入了我们的整体使命和公司战略。Docker 的产品是用户社区的核心,我们的 SOC 2 Type 2 认证和 ISO 27001 认证证明了 Docker 对用户群安全的持续承诺。
更多信息请参见博客公告。
Docker 安全咨询:runc、BuildKit 和 Moby 中的多项漏洞
最后更新于 2024 年 2 月 2 日
在 Docker,我们优先考虑软件的安全性和完整性以及用户的信任。Snyk Labs 的安全研究人员发现并报告了容器生态系统中的四个安全漏洞。其中一个漏洞 CVE-2024-21626 涉及 runc 容器运行时,另外三个影响 BuildKit (CVE-2024-23651, CVE-2024-23652, 和 CVE-2024-23653)。我们向社区保证,我们的团队与报告者和开源维护者合作,一直在努力协调和实施必要的补救措施。
我们致力于维护最高的安全标准。我们已于 1 月 31 日发布了 runc、BuildKit 和 Moby 的修补版本,并于 2 月 1 日发布了 Docker Desktop 的更新以解决这些漏洞。此外,我们最新的 BuildKit 和 Moby 版本还包含了 CVE-2024-23650 和 CVE-2024-24557 的修复,这些漏洞分别由独立研究人员和 Docker 内部研究计划发现。
| 受影响的版本 | |
|---|---|
runc | <= 1.1.11 |
BuildKit | <= 0.12.4 |
Moby (Docker Engine) | <= 25.0.1 和 <= 24.0.8 |
Docker Desktop | <= 4.27.0 |
如果我使用的是受影响的版本,我该怎么办?
如果您正在使用受影响的 runc、BuildKit、Moby 或 Docker Desktop 版本,请务必更新到最新版本,链接在下表中
| 已修补的版本 | |
|---|---|
runc | >= 1.1.12 |
BuildKit | >= 0.12.5 |
Moby (Docker Engine) | >= 25.0.2 和 >= 24.0.9 |
Docker Desktop | >= 4.27.1 |
如果您无法及时更新到不受影响的版本,请遵循以下最佳实践以降低风险
- 只使用受信任的 Docker 镜像(例如 Docker 官方镜像)。
- 不要从不受信任的源或不受信任的 Dockerfile 构建 Docker 镜像。
- 如果您是 Docker Business 客户并使用 Docker Desktop 且无法更新到 v4.27.1,请务必启用 Hardened Docker Desktop 功能,例如
- 对于 CVE-2024-23650、CVE-2024-23651、CVE-2024-23652 和 CVE-2024-23653,请避免使用来自不受信任源的 BuildKit 前端。前端镜像通常在 Dockerfile 中指定为 #syntax 行,或在使用
buildctl build命令时使用--frontend标志。 - 为缓解 CVE-2024-24557,请确保在构建镜像时使用 BuildKit 或禁用缓存。在 CLI 中,可以通过
DOCKER_BUILDKIT=1环境变量(如果安装了 buildx 插件,则 Moby >= v23.0 默认启用)或--no-cache 标志来实现。如果您直接使用 HTTP API 或通过客户端使用 HTTP API,可以通过将 /build API 端点的nocache设置为true或version设置为2来实现。
技术细节和影响
CVE-2024-21626 (高危)
在 runc v1.1.11 及更早版本中,由于某些泄露的文件描述符,攻击者可以通过导致新生成的容器进程(来自 runc exec)在主机文件系统命名空间中拥有工作目录,或者通过诱骗用户运行恶意镜像并允许容器进程通过 runc run 访问主机文件系统来获取对主机文件系统的访问权限。攻击还可以适应覆盖半任意主机二进制文件,从而实现完整的容器逃逸。请注意,当使用高级运行时(例如 Docker 或 Kubernetes)时,此漏洞可以通过运行恶意容器镜像而无需额外配置或在启动容器时传递特定 workdir 选项来利用。在 Docker 的情况下,该漏洞也可以从 Dockerfile 内部利用。
该问题已在 runc v1.1.12 中修复。
CVE-2024-23651 (高危)
在 BuildKit <= v0.12.4 中,两个并行运行的恶意构建步骤共享相同的带有子路径的缓存挂载,可能导致竞态条件,从而使主机系统中的文件可供构建容器访问。这只会在用户尝试构建恶意项目的 Dockerfile 时发生。
该问题已在 BuildKit v0.12.5 中修复。
CVE-2024-23652 (高危)
在 BuildKit <= v0.12.4 中,恶意 BuildKit 前端或使用 RUN --mount 的 Dockerfile 可能会诱骗删除为挂载点创建的空文件的功能,从而删除容器外部主机系统中的文件。这只会在用户使用恶意 Dockerfile 时发生。
该问题已在 BuildKit v0.12.5 中修复。
CVE-2024-23653 (高危)
除了将容器作为构建步骤运行之外,BuildKit 还提供用于基于已构建镜像运行交互式容器的 API。在 BuildKit <= v0.12.4 中,可以使用这些 API 要求 BuildKit 运行具有提升权限的容器。通常,只有在 buildkitd 配置中启用特殊 security.insecure 权限且用户初始化构建请求时允许,才能运行此类容器。
该问题已在 BuildKit v0.12.5 中修复。
CVE-2024-23650 (中危)
在 BuildKit <= v0.12.4 中,恶意 BuildKit 客户端或前端可能制作一个请求,导致 BuildKit 守护程序因 panic 而崩溃。
该问题已在 BuildKit v0.12.5 中修复。
CVE-2024-24557 (中危)
在 Moby <= v25.0.1 和 <= v24.0.8 中,如果镜像从 scratch 构建,则经典构建器缓存系统容易受到缓存中毒攻击。此外,对某些指令(最重要的是 HEALTHCHECK 和 ONBUILD)的更改不会导致缓存未命中。了解用户正在使用的 Dockerfile 的攻击者可以通过使其拉取特制镜像来毒害其缓存,该镜像将被视为某些构建步骤的有效缓存候选项。
该问题已在 Moby >= v25.0.2 和 >= v24.0.9 中修复。
Docker 产品如何受到影响?
Docker Desktop
Docker Desktop v4.27.0 及更早版本受到影响。Docker Desktop v4.27.1 于 2 月 1 日发布,包含 runc、BuildKit 和 dockerd 二进制文件补丁。除了更新到此新版本外,我们鼓励所有 Docker 用户勤勉使用 Docker 镜像和 Dockerfile,并确保您在构建中只使用受信任的内容。
一如既往,您应该在更新前检查您的操作系统的 Docker Desktop 系统要求(Windows、Linux、Mac),以确保完全兼容。
Docker Build Cloud
所有新的 Docker Build Cloud 构建器实例都将配置最新的 Docker Engine 和 BuildKit 版本,因此不会受到这些 CVE 的影响。更新也已推广到现有的 Docker Build Cloud 构建器。
没有其他 Docker 产品受到这些漏洞的影响。
咨询链接
- Runc
- BuildKit
- Moby
Text4Shell CVE-2022-42889
最后更新于 2022 年 10 月
CVE-2022-42889 已在流行的 Apache Commons Text 库中发现。此库版本最高但不包括 1.10.0 的版本受此漏洞影响。
我们强烈建议您更新到最新版本的 Apache Commons Text。
扫描 Docker Hub 上的镜像
在 2021 年 10 月 21 日世界协调时间 12:00 后触发的 Docker Hub 安全扫描现在正确识别 Text4Shell CVE。在此日期之前的扫描目前不反映此漏洞的状态。因此,我们建议您通过将新镜像推送到 Docker Hub 来触发扫描,以在漏洞报告中查看 Text4Shell CVE 的状态。有关详细说明,请参阅扫描 Docker Hub 上的镜像。
受 CVE-2022-42889 影响的 Docker 官方镜像
许多 Docker 官方镜像包含易受攻击的 Apache Commons Text 版本。以下列出了可能包含易受攻击的 Apache Commons Text 版本的 Docker 官方镜像
我们已将这些镜像中的 Apache Commons Text 更新到最新版本。其中一些镜像可能由于其他原因而不易受攻击。我们建议您也查阅上游网站上发布的指南。
Log4j 2 CVE-2021-44228
最后更新于 2021 年 12 月
Log4j 2 CVE-2021-44228 漏洞存在于 Log4j 2(一个非常常见的 Java 日志库)中,它允许远程代码执行,通常来自攻击者容易获得的上下文。例如,它被发现在 Minecraft 服务器中,允许将命令键入聊天日志,因为这些日志随后被发送到日志记录器。这使其成为一个非常严重的漏洞,因为日志库使用范围广且可能易于利用。许多开源维护者正在努力修复和更新软件生态系统。
受 Log4j 2 漏洞影响的版本是 2.0 到 2.14.1(含)。第一个修复版本是 2.15.0。如果可以,我们强烈建议您更新到最新版本。如果您使用的是 2.0 之前的版本,您也不会受到攻击。
如果您使用这些版本,您可能不会受到攻击,因为您的配置可能已经缓解了此问题,或者您记录的内容可能不包含任何用户输入。然而,在不详细了解所有可能记录的代码路径以及它们可能从何处获取输入的情况下,这可能很难验证。因此,您可能需要升级所有使用易受攻击版本的代码。
CVE-2021-45046
作为 CVE-2021-44228 的更新,版本 2.15.0 中所做的修复不完整。已发现其他问题,并由 CVE-2021-45046 和 CVE-2021-45105 跟踪。为了更完整地修复此漏洞,我们建议您尽可能更新到 2.17.0。
扫描 Docker Hub 上的镜像
在 2021 年 12 月 13 日世界协调时间 17:00 后触发的 Docker Hub 安全扫描现在正确识别 Log4j 2 CVE。在此日期之前的扫描目前不反映此漏洞的状态。因此,我们建议您通过将新镜像推送到 Docker Hub 来触发扫描,以在漏洞报告中查看 Log4j 2 CVE 的状态。有关详细说明,请参阅扫描 Docker Hub 上的镜像。
受 Log4j 2 CVE 影响的 Docker 官方镜像
最后更新于 2021 年 12 月
许多 Docker 官方镜像包含易受攻击的 Log4j 2 CVE-2021-44228 版本。下表列出了可能包含易受攻击的 Log4j 2 版本的 Docker 官方镜像。我们已将这些镜像中的 Log4j 2 更新到最新版本。其中一些镜像可能由于其他原因而不易受攻击。我们建议您也查阅上游网站上发布的指南。
| 仓库 | 已修补的版本 | 附加文档 |
|---|---|---|
| couchbase | 7.0.3 | Couchbase 博客 |
| Elasticsearch | 6.8.22, 7.16.2 | Elasticsearch 公告 |
| Flink | 1.11.6, 1.12.7, 1.13.5, 1.14.2 | Flink 关于 Log4j CVE 的建议 |
| Geonetwork | 3.10.10 | Geonetwork GitHub 讨论 |
| lightstreamer | 等待信息 | 等待信息 |
| logstash | 6.8.22, 7.16.2 | Elasticsearch 公告 |
| neo4j | 4.4.2 | Neo4j 公告 |
| solr | 8.11.1 | Solr 安全新闻 |
| sonarqube | 8.9.5, 9.2.2 | SonarQube 公告 |
| storm | 等待信息 | 等待信息 |
注意