漏洞总结 漏洞概述 在 Go 1.26.1 及更早版本中, 包中的 函数在处理包含大量 (策略映射)扩展的证书链时,存在二次复杂度(Quadratic Complexity)的性能缺陷。 触发条件: 当候选证书链已构建至受信任根,且中间证书包含未被抑制(InhibitPolicyMapping=0)的大规模策略映射时。 后果: 验证过程会变得极慢,验证时间随 的数量呈二次方增长(例如,从基准的 79ms 激增至 3715ms)。这可能导致拒绝服务(DoS)攻击。 原因: 函数在循环中重复执行策略修剪( ),导致对已构建的图进行重复扫描。 影响范围 受影响版本: Go 1.26.1 (及更早版本)。 受影响组件: 包。 应用场景: 任何使用 Go 标准库验证证书链的应用程序,特别是涉及 mTLS 或私有 PKI 服务的场景。 CVE ID: CVE-2026-32281 修复方案 核心修复: 修改 中的逻辑,将策略修剪(policy pruning)操作移出循环(hoist policy pruning out of loop),避免在循环中重复执行相同的工作。 相关代码变更/Issue: 主分支修复 PR: (cl/75896) 向后移植 (Backport) 到 Go 1.25: Issue #78359 向后移植 (Backport) 到 Go 1.26: Issue #78360