资讯 Go 1.26.6 / 1.25.13 修复 10 个安全问题:net/url 的 O(n²) 与 TLS 1.3 KeyUpdate 派生循环

2026-10-01 21:02:26

Go 1.26.6 / 1.25.13 修复 10 个安全问题:net/url 的 O(n²) 与 TLS 1.3 KeyUpdate 派生循环

来源:oss-security 2026-08-13。Go 1.26.6 与 Go 1.25.13 发布,共包含 10 个安全修复。下面按涉及的包整理。

net/url:大量 .. 段触发 O(n²)

resolvePath 处理含大量父目录(..)段的相对路径时,原实现走的是字符串转换加缓冲重写,时间和内存都是 O(n²)。修复改为字节缓冲加按索引回溯,消除了二次复杂度。

  • CVE:CVE-2026-56860
  • issue:https://go.dev/issue/80494
  • CVSS:5.9(MEDIUM)
  • 触发路径:攻击者发送带大量 .. 段的 URL 路径即可打到 Go 服务,url.URL.ResolveReference 等路径解析都会经过这段逻辑。

crypto/tls:恶意客户端可无限触发密钥派生

此前 KeyUpdate 等握手消息被一律当成 state-advancing 处理。恶意客户端可以持续发送 KeyUpdate,迫使服务端无限做密钥派生。影响 TLS 1.3。

  • CVE:CVE-2026-56862
  • issue:https://go.dev/issue/80528
  • 受影响版本:go1.25.13 之前、go1.26.0-0 到 go1.26.6 之前、go1.27.0-0 到 go1.27.0-rc.3 之前
  • GO-2026-6090

html/template:JS 正则上下文跟踪缺陷

JS 正则上下文的跟踪存在缺陷,病态输入可以提前闭合未转义的 /,进而注入任意内容,可能导致 XSS。

  • CVE:CVE-2026-56858
  • issue:https://go.dev/issue/80435

encoding/xml:DecodeElement 深度计数被重置

DecodeElement 会重置深度计数,导致深度保护 never fire,可能造成栈溢出。此版本新增了递归深度保护。

  • CVE:CVE-2026-56859
  • issue:https://go.dev/issue/80481

net/http:明文 HTTP/2 preface 读取未设超时

未加密的 HTTP/2 在检查、读取 preface 时没有设置超时。修复后 ReadHeaderTimeout 对此生效。

  • CVE:CVE-2026-56853
  • issue:https://go.dev/issue/80205

x/net/dns/dnsmessage:非法 SVCB/HTTPS RR 可致 panic

解析非法 SVCB/HTTPS RR 时,参数值的大小计算溢出会引发 panic。

  • CVE:CVE-2026-46600
  • issue:https://go.dev/issue/79795

x/net/idna:ASCII-only Punycode 标签未被拒绝

x/net/idna 未拒绝 ASCII-only 的 Punycode 标签。例如 ToUnicode("xn--example-.com") 会错误返回 "example.com",可能被用于域名混淆。

修复版本

  • Go 1.26.6
  • Go 1.25.13

两者均发布于 2026-08-13。按版本线升级即可覆盖上面这批修复。

更早一批修复

同一时间段内还有两个已修复的问题:

  • CVE-2026-25679:net/url 拒绝非起始位置的 IPv6 字面量(GO-2026-4601)
  • CVE-2026-27138:crypto/x509 名称约束 panic

参考

复制全文 生成海报 Go 安全 CVE net url crypto tls

推荐文章

程序员茄子在线接单