etcd 5小时前 · 2026-09-04 10:18:51 · 3 阅读
etcd 发布 v3.7.1、v3.6.14 和 v3.5.33 补丁版本
SIG-etcd 已为所有三个受支持的发行分支发布补丁更新。这些版本修复了两项安全漏洞、若干次要安全问题,以及服务器、客户端库和 TLS 栈中的多项可靠性问题。运行 v3.5、v3.6 和 v3.7 的用户应在下次计划维护窗口时尽快更新。
获取更新入口如下:
- v3.7.1
- v3.6.14
- v3.5.33
官方容器镜像可从 gcr.io 获取。
安全修复:
本次补丁修复了一项漏洞:网络攻击者可以打开但无法完成数量不限的 TLS 客户端连接,最终耗尽 etcd 服务器资源,导致服务不可用。此安全漏洞会影响 Kubernetes control plane。
关于该漏洞的更多信息,包括临时解决方案,请参阅漏洞报告。
安全修复:Watch 响应跨越 RBAC 键边界泄露
三个版本均修复了一项漏洞:被授权对单个 key 读取的用户可能接收到从该 key 起始的所有 key 的 watch 事件通知,从而暴露超出其权限范围的数据。 此漏洞不影响作为 Kubernetes Control Plane 一部分的 etcd。它仅影响在不受信任或部分受信任环境中启用了 Auth 的 etcd 集群。 以此方式依赖 etcd Auth 的用户应立即更新集群。其他 etcd 用户可在下次定期维护窗口时更新。 有关该漏洞的更多信息,包括临时规避方案,请参阅 漏洞公告。致谢
该漏洞由 etcd 社区成员报告。我们的 SIG 衷心感谢以下人员: - Luis Toro - Anthropic 及 Adam Korczynski 如果你发现 etcd 的安全漏洞,请通过 GitHub 上的表单 进行报告。安全修复:tlsListener.acceptLoop 在无截止时间的情况下产生无限数量的握手 goroutine
本次补丁修复了一项漏洞:网络攻击者可以打开但无法完成数量不限的 TLS 客户端连接,最终耗尽 etcd 服务器资源,导致服务不可用。此安全漏洞会影响 Kubernetes control plane。
关于该漏洞的更多信息,包括临时解决方案,请参阅漏洞报告。
致谢
该漏洞由 VMware by Broadcom 团队的成员发现并修复。感谢该团队为帮助保障 etcd 的安全性所做的贡献。
三个版本共有的安全与可靠性修复
除已报告的两项安全修复外,这三个版本还包含一系列针对 etcd 安全性和可靠性的修复:
- 对等租约处理程序的无界读取:用于对等租约请求的 HTTP 处理程序可执行无界的
io.ReadAll,使得恶意或行为异常的节点能够导致内存过度消耗。现已通过限制读取量来修复此问题。 - 事务成本核算:
costTxnReq函数未对嵌套的RequestTxn操作进行核算,可能导致请求成本估算不准确。 - HTTP 服务器超时:现在在面向客户端的 HTTP 服务器上设置了
ReadHeaderTimeout,以防范可能无限期保持连接打开的慢头攻击。 - 客户端
leaseCache数据竞争:clientv3中对leaseCache.entries的并发 map 迭代未进行正确同步,可能在并发租约操作下导致 panic 或行为异常。 - TLS 握手超时:
client/pkg/v3中的 TLS 监听器现在设置了tlsHandshakeTimeout,防止停滞的 TLS 握手无限期保持连接打开。
v3.7.1 和 v3.6.14 additionally 修复了一个 snapshotLimitByte 配置问题:快照大小限制未初始化为合理默认值,在某些配置下可能导致快照无限增长。
v3.6.14 和 v3.5.33 的依赖更新
v3.6.14 和 v3.5.33 将 Go 编译器更新至 go 1.25.12。
v3.5.33 还将 golang.org/x/net 升级至 v0.56.0 以解决 GO-2026-5942,并将 golang.org/x/text 升级至 v0.39.0 以解决 GO-2026-5970。
各版本的完整变更日志:
最后修改于 2026年8月20日: 更新旧博客文章以链接至安全漏洞报告表单 (#1215) (8245979)原始来源: etcd