回顾既往:为未修复的 Kubernetes CVE 纠正记录
Kubernetes 项目依靠透明度来赋能集群管理员和安全研究人员。 我们做到这一点的重要方式之一是将 CVE 记录发布到通用漏洞披露数据库中。 作为我们持续完善官方 Kubernetes CVE 动态订阅源的一部分, 我们发现了一些差异。 某些较早的未修复问题的 CVE 记录错误地包含了 已修复版本(fixed version) 字段。
Kubernetes 安全响应委员会(SRC)将于 2026 年 6 月 1 日纠正受影响的 CVE 记录。 这可能导致漏洞扫描器在这些漏洞之前未被检测到的地方识别出它们。
为帮助减少混淆,本文针对以下三个多年前披露但仍未修复的漏洞提供技术更新: CVE-2020-8561、CVE-2020-8562 和 CVE-2021-25740。
为什么我们现在更新这些记录
虽然这些漏洞已经公开多年,但最近生成官方开源漏洞(OSV)文件的工作发现, 它们对应的 CVE 记录并未准确反映其状态。具体而言,某些记录表明存在已修复版本, 而实际上这些问题属于架构设计上的权衡,无法在不破坏 Kubernetes 基础功能的情况下通过代码完全修复。
纠正这些记录对社区至关重要,原因如下:
- 自动化保真度:现代漏洞扫描器依赖于精确的版本范围。 不准确的已修复标签会导致漏报,让用户产生虚假的安全感。
- 风险文档化:通过将这些正式确定为未修复, 我们确保平台提供商和管理员了解持续需要采取管理缓解措施的必要性。
为完整性起见,我们还应提及 CVE-2020-8554 是一个未修复的 CVE,但其 CVE 记录正确地声明它影响所有版本。 该记录也将更新为使用更标准化的版本号格式。
未修复架构风险的技术分析
以下漏洞将不会由 Kubernetes 项目修复。 GitHub 问题仍然是了解这些缺陷技术细节的最佳参考资料。
CVE-2020-8561:kube-apiserver 中的 Webhook 重定向
- 严重程度:中(4.1)。
- 问题描述:kube-apiserver 在与准入 webhook 通信时会遵循 HTTP 重定向。 能够配置 AdmissionWebhookConfiguration 的参与者可以将 API 服务器请求重定向到内部私有网络。
- 未修复原因:限制此行为需要打破许多合法集成所依赖的标准 HTTP 客户端行为。
- 缓解措施:将 API 服务器日志级别设置为小于 10(以防止记录响应正文),
并禁用动态性能分析(
--profiling=false)以防止未经授权的日志级别更改。
CVE-2020-8562:通过 DNS TOCTOU 绕过代理
- 严重程度:低(3.1)。
- 问题描述:API 服务器代理中的检查时间到使用时间(TOCTOU)竞争条件允许用户绕过 IP 限制。 系统执行 DNS 检查以验证 IP,但随后为实际连接执行第二次解析,攻击者可以操纵此过程。
- 未修复原因:修复此问题需要固定已解析的 IP,但这会破坏复杂的分割视图 DNS 或动态 IP 环境。
- 缓解措施:为 API 服务器使用本地 DNS 缓存服务器(如 dnsmasq),
并配置
min-cache-ttl以在检查和连接之间强制执行一致的响应。
CVE-2021-25740:通过 Endpoints 的跨名字空间转发
- 严重程度:低(3.1)。
- 问题描述:Endpoints 和 EndpointSlices API 对象中的设计缺陷允许用户手动指定 IP 地址, 这些地址可用于将 LoadBalancer 或 Ingress 指向其他名字空间中的后端。
- 未修复原因:这是许多网络工具和 operator 使用的 Endpoints API 的基础功能。
- 缓解措施:限制对 Endpoints(遗留)和 EndpointSlices 的写访问权限。
自 Kubernetes 1.22 起,Kubernetes RBAC 授权模式不再在默认
edit 和 admin ClusterRole 中包含这些权限。
该移除适用于使用 Kubernetes v1.22 创建的集群;对于从旧版本升级的集群,
管理员应手动审核并协调
system:aggregate-to-editClusterRole。
说明:
2026 年 6 月 1 日,这些 CVE 记录将被更新以正确反映所有版本均受影响的事实。 你可能会看到它们开始出现在漏洞扫描器结果中。
管理员需要采取的操作
Kubernetes 项目推荐采用通过配置实现安全的方法来管理这些持续风险:
| 漏洞 | 操作项 | 严重程度评分(评级) | 命令 / 配置 |
|---|---|---|---|
| CVE-2020-8561 | 限制日志详细程度 | 4.1(中) | 确保 --v 设置为 < 10 且 --profiling=false。 |
| CVE-2020-8562 | 强制 DNS 一致性 | 3.1(低) | 在控制平面节点上部署 dnsmasq 或类似的缓存解析器。 |
| CVE-2021-25740 | 强化 RBAC | 3.1(低) | 使用 kubectl auth reconcile 从广泛角色中移除 Endpoints 写访问权限。 |
CVE-2021-25740 的 RBAC 操作适用于使用 RBAC 授权模式的集群, 这是使用标准 Kubernetes 工具创建的集群的默认设置。 管理员应在非生产环境中独立测试和验证这些配置, 根据其特定的威胁模型和风险承受能力评估架构风险。
结语:通过透明度走向成熟
协调这些记录的努力是安全生态系统走向成熟的标志。 通过摒弃仅打补丁的思维模式并准确记录架构债务, Kubernetes 项目为社区提供了保护现代云原生基础设施所需的高保真数据。
我们要感谢发现这些风险的安全研究人员 —— QiQi Xu、Javier Provecho 等, 以及继续完善我们官方动态订阅源的 SIG Security Tooling 贡献者。 特别感谢 Rory McCune 通过他的博客文章分享了有关这些 CVE 的信息。