发布日期: 2026 年 10 月 21 日
风险等级: 高危(厂商按安全更新发布;NVD 尚未给出 CVSS)
漏洞编号: CVE-2026-111943
CVSS: NVD 尚未收录,暂无分数
披露时间: Go 安全公告与 oss-security 于 2026 年 10 月 20 日公开;Docker Engine 29.9.2 同日发布
相关公告: Docker Engine 29 发行说明
一、漏洞概述
八枚 eMudhra / emSign 中间证书的私钥已经泄露。范围包括域名验证、组织验证、扩展验证的 TLS 中间证,以及代码签名中间证 G3B、G3C。G3B 属于 eMudhra BV,G3C 属于 eMudhra Inc。
客户端或运行时如果在证书校验里仍然接受含这些中间证的链路,能够劫持流量或 DNS 的攻击者就可以伪造 TLS 服务端身份。Go 的 crypto/x509 从 1.26.10 和 1.27.3 起会过滤这类信任链。
Docker Engine 29.9.2(2026 年 10 月 20 日)把引擎使用的 Go 运行时升到 1.26.10。引擎侧镜像 pull / push 的 TLS 校验会拒绝仍挂在这些中间证上的仓库证书链。配套 CLI 一并更新。
暴露面在主机上的 Docker Engine 与 CLI,不在某个业务容器镜像里。已改用其他证书链的仓库不受影响。
二、漏洞状态
统计截止: 2026 年 10 月 21 日(UTC+8)
| 项目 | 状态 |
|---|---|
| 漏洞细节 | 已公开(Go 安全公告、Docker Engine 发行说明、oss-security) |
| 漏洞类型 | 已泄露中间 CA 私钥后,未更新的证书校验仍可能接受伪造链 |
| 受影响组件 | 内置 Go 低于 1.26.10 的 Docker Engine;其他仍用更旧 Go crypto/x509 做 TLS 校验的程序 |
| 官方补丁 | Docker Engine ≥ 29.9.2(Go 1.26.10)。其他 Go 程序重建到 Go ≥ 1.26.10 或 ≥ 1.27.3 |
| 在野利用 | 公开跟踪未见确认利用 |
| CISA KEV | 未列入 |
三、影响范围
1. 发行形态
| 形态 | 修复 |
|---|---|
| Docker Engine / CLI | ≥ 29.9.2 |
| 自研或依赖 Go TLS 的组件 | 用 Go ≥ 1.26.10 或 ≥ 1.27.3 重新构建 |
| 私有或第三方 Registry | 停止使用上述 eMudhra 中间证签发的证书 |
Docker Engine 是主机组件,没有对应的 Hub 或轩辕引擎镜像。升级走发行包或厂商安装源,不靠拉取某个业务镜像。
2. 典型受影响场景
- 主机上的 Engine 低于 29.9.2,并且要访问的仓库证书链仍经过这些中间证
- 攻击者能改写该主机到仓库之间的流量或 DNS
- 自建的 Go 程序仍用 1.26.10 / 1.27.3 之前的
crypto/x509去信任公网 TLS
仓库证书已经换成无关链路时,这条伪造链不会被接受。升级之后,仓库若仍挂在被阻断的中间证上,pull 和 push 会在校验阶段失败,需要仓库侧更换证书,而不是把 Engine 退回旧版。
四、修复建议
1. 升级 Docker Engine 与配套 CLI(推荐)
把 Docker Engine 和配套 CLI 升到 29.9.2 或更高。发行说明里的安全项写明:Go 运行时更新到 1.26.10。
发行说明:Docker Engine 29。
升级后抽查 docker version,确认 Engine 版本不低于 29.9.2。然后对仍在使用的私有仓库做一次 pull 或 push。若报证书校验失败,让仓库更换证书链,不要关闭 TLS 校验。
2. 其他 Go 程序
自行编译、并且用 Go 标准库做 TLS 校验的组件,重建到 Go 1.26.10、1.27.3 或各自更高的补丁版本。只升 Docker Engine 不会更换这些程序里的 Go。
3. 仓库侧
不要再部署由上述 eMudhra / emSign 中间证签发的服务器证书。代码签名若仍走 EM OV CS CA - G3B / G3C,同样需要更换签发链。
五、临时缓解措施
在升到 29.9.2 之前:
-
优先升级 Engine,不要用跳过证书校验来换取 pull 成功
未更新的校验会继续接受含这些中间证的链路。 -
先处理仍使用受影响中间证的私有仓库
换证可以缩小伪造面。换证完成前,限制谁能影响主机到该仓库的解析和转发。 -
已经换用其他 CA 的仓库不必为这条公告改链
主机上的 Engine 仍应升到 29.9.2,以便以后遇到这类证书时直接拒绝。
六、与轩辕镜像用户的相关说明
这条修复在主机上的 Docker Engine 与 Go 运行时,不在某一条镜像坐标上。加速拉取业务镜像不会把 Engine 升到 29.9.2。
升级后如果某个私有仓库 pull 失败,先看该仓库证书是否仍由已泄露的 eMudhra 中间证签发。轩辕镜像的拉取域名使用独立证书链,不依赖这八枚中间证。
七、参考链接
- Docker 文档:Engine 29 发行说明
- Go 安全公告:Go 1.26.10 与 1.27.3
- Go issue:golang/go#82345
- oss-security:eMudhra Intermediates Compromise
轩辕镜像安全团队
2026 年 10 月 21 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
