资讯 Go 1.26.6/1.25.13 安全修复:KeyUpdate 打满 CPU,IDNA 误判可提权

2026-09-09 21:02:33

Go 1.26.6/1.25.13 安全修复:KeyUpdate 打满 CPU,IDNA 误判可提权

Go 1.26.6 和 1.25.13 于 2026-08-13 发布,共 10 个安全修复。下面三个容易被外部输入触发、自建服务常踩的漏洞值得先看。

crypto/tls:KeyUpdate 无限握手(CVE-2026-56862)

握手消息状态机实现有缺陷,过去无论握手是否完成,都把 KeyUpdate 当作可推进状态的消息处理。恶意客户端可不停发送 KeyUpdate,迫使服务端反复执行密钥派生,CPU 被打满,等价于 DoS。

  • 修复:对握手完成后仍愿意接收的握手消息数量做限制。
  • 影响范围:Conn.HandshakeRead/WriteDial 系列、QUICConn
  • 关联 issue:go.dev/issue/80528。

net/url:resolvePath 处理 .. 段变成二次复杂度(CVE-2026-56860)

原实现对每步路径都对整条字符串做转换和缓冲重写,路径越长,耗时越接近平方增长,内存分配也会放大。修复后改为字节缓冲上下标回溯,复杂度回到线性。

  • 关联 issue:go.dev/issue/80494。
  • 建议:拿用户输入拼 URL 再调用 ResolveReference 的服务需要重点测。

x/net/idna:ASCII-only Punycode 被错误接受(CVE-2026-39821)

ToUnicode("xn--example-.com") 会返回 example.com,而不是报错。这是 UTS46 老规范缺陷,Rev33 修复。程序如果先用 ASCII 主机名做权限判断、之后再转 Unicode,会间接放行同名域名,属于提权。

  • 关联 issue:go.dev/issue/78760。

升级与自查

升级地址在 https://go.dev/dl/ ,源码升级可执行 git checkout go1.26.6

本次同时修了 sumdb tile 校验绕过(CVE-2026-56865/56864)。官方自查命令:

rm -r go.sum go.work.sum vendor/ && go mod tidy

修复优先级建议:TLS 服务端 > 域名鉴权 > URL 解析。

复制全文 生成海报 Go 安全 crypto tls x net 运维

推荐文章

程序员茄子在线接单