跳至正文
Wener Notes

CVE-2026-111943

约 3 分钟阅读
  • Go crypto/x509 对已失陷中间 CA 的拒绝检查;对应 ,影响入口为 Certificate.Verify
  • 背景是 ;该事件的密钥生成缺陷发生在 CA 侧,Go 的修复是在证书验证时拒绝受损公钥
  • Go 安全版本发布:2026-10-19;CVE 公开:2026-10-21;资料核对:2026-10-26
  • CWE-299:Improper Check for Certificate Revocation(Go CNA)
  • CVSS:所查 Go CNA 记录未给分;NVD 为 Awaiting Analysis、metrics={},不记为 0.0

编号与事件范围

来源编号使用范围
Go CNA / Go Vulnerability Database正式产品范围为 Go 标准库 crypto/x509,修复补充受损中间 CA 的 SPKI denylist
RustSec RUSTSEC-2026-0382rustls-webpki 的同类拒绝检查,将 CVE-2026-111943 列为 alias;修复版本 0.103.16、0.104.0-alpha.8,具体范围以 RustSec 为准
AWS 2026-150-AWS以该 CVE 为题发布 eMudhra 事件及 AWS trust bundle 处置公告,覆盖多个服务和运行时
Mozilla CVE-2026-113470另一条产品记录,跟踪 Firefox / Thunderbird 的安全阻断列表更新,确保 RemoteSettings 不可用时也能阻断受损中间证书
  • 当前 CNA 的 Go 产品范围、RustSec 的 alias 和 AWS 的事件公告口径分别保留;不能据此把全部生态的修复版本套成 Go 版本,也不能说只有 Go 才受事件影响
  • 截至核对日,在所查 eMudhra 声明、Go / Mozilla CVE 记录、RustSec 与 AWS 公告中,未发现另一个专门覆盖 CA 弱密钥生成根因的 CVE;完整事件继续由事件页维护

成因与利用条件

  • Go 在多数平台使用系统提供的信任根,但某些系统根库、手工配置的根或应用 bundle 未及时更新,仍可能构建出经受损中间 CA 的证书链
  • 攻击者掌握受损中间 CA 私钥后,可为目标站点签发伪造证书;客户端仍接受该链且流量经过攻击者时,可能发生 TLS 身份冒充、信息泄露或内容篡改
  • 是否可利用取决于实际链、信任根和验证策略;旧 Go 版本不自动证明链会被接受,系统已阻断时也可能受到保护
  • Go 不负责这次 CA 的密钥生成;它补充的是客户端验证阶段的拒绝检查

修复与缓解

Go 范围(CNA / OSV)首个上游修复版本
<1.26.10,含未回补的更老分支1.26.10
>=1.27.0-0, <1.27.3,含该分支预发布版本1.27.3
  • 使用支持分支的当前安全版本;发行版或供应商回补需按各自公告核对
  • 升级工具链后重新构建、部署并重启受影响 Go 程序;只更新开发机的 go 不会改变已经构建的二进制和容器
  • 同时更新应用实际使用的 CA bundle;Go 的 denylist 是运行时内的额外防护,不会替操作系统、Python 或 Node 修改信任库
  • 自定义证书验证、禁用标准 TLS 校验等路径需单独检查,不能只用编译器版本证明有效

补丁机制

  • 主线修复 CL 851047,commit 7f86f957633ee31a1c17a1eb8452ca7a3d9bc141
  • src/crypto/x509/verify.go:新增 distrustedSPKIHashes 和 containsDistrustedSPKIHash(),对链中证书的 RawSubjectPublicKeyInfo 计算 SHA-256,过滤命中 denylist 的候选链
  • src/crypto/x509/root_darwin.go、root_windows.go:对系统验证返回的链也应用相同检查
  • 所列八个 SPKI hash 与事件公开证书元数据中的八组受损公钥完全对应;同一公钥的交叉签名证书也会命中
  • 没有可用链时返回验证错误;这是按公钥拒绝,不依赖 CA 名称字符串、某一张证书的序列号或在线 OCSP 请求

PoC

  • 可用于授权环境中的证书签发演示;能否被接受仍由客户端的信任与验证策略决定
  • 原理示意:旧信任根 + 受损中间 CA 签发的叶证书 → 未拒绝该公钥的验证路径可能接受;已修复 Go 的 Verify 会过滤命中 denylist 的链
  • 上游补丁及工具功能证明有相应验证/签发能力,不能直接证明已发生在野 MITM;本次未生成证书、运行代理或发起漏洞验证请求

参考

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • 2026-10 eMudhra 中间 CA 私钥失陷
    笔记 · CVE-2026-111943

    事件类型:WebPKI / CA 密钥生成与信任分发事件;首次报告 2026-10-17,多方于 2026-10-20 发布公告;首次整理 2026-10-23,CVE 关联与厂商追加声明核对 2026-10-26 · 八组 eMudhra 中间 CA 密钥因生成缺陷而可恢复,攻击者可利用对应签发权限伪造证书;Google、Mozilla 和发现方资料...

  • MitmProxy
    笔记 · CVE-2026-111943

    mitmproxy/mitmproxy · MIT, Python · 证书安装访问 http://mitm.it/ · Doc · 工作模式 · Regular Proxy · 作为 HTTP 代理服务器 · 客户端安装证书 - 访问 mitm.it 安装证书

站内链接

  • 2026-10 eMudhra 中间 CA 私钥失陷
    笔记 · eMudhra 中间 CA 私钥失陷事件

    事件类型:WebPKI / CA 密钥生成与信任分发事件;首次报告 2026-10-17,多方于 2026-10-20 发布公告;首次整理 2026-10-23,CVE 关联与厂商追加声明核对 2026-10-26 · 八组 eMudhra 中间 CA 密钥因生成缺陷而可恢复,攻击者可利用对应签发权限伪造证书;Google、Mozilla 和发现方资料...

  • MitmProxy
    笔记 · mitmproxy 的 eMudhra 支持 · emudhra 受损 ca

    mitmproxy/mitmproxy · MIT, Python · 证书安装访问 http://mitm.it/ · Doc · 工作模式 · Regular Proxy · 作为 HTTP 代理服务器 · 客户端安装证书 - 访问 mitm.it 安装证书

参考资料

GitHub3 条
依赖包1 条
其他外链11 条
最近更新commit c5df7af编辑