中文内容
协调历史记录:修正未修复 Kubernetes CVE 的记录
Kubernetes 项目依靠透明度来赋能集群管理员和安全研究人员。我们实现这一点的一项重要方式,是将 CVE 记录发布到 Common Vulnerabilities and Exposures 数据库中。作为持续完善官方 Kubernetes CVE Feed 工作的一部分,我们发现了一些不一致之处。少数较早且尚未修复的问题,其 CVE 记录错误地包含了固定版本字段。
Kubernetes Security Response Committee(SRC)将于 2026 年 6 月 1 日修正受影响的 CVE 记录。这可能导致漏洞扫描器在此前未检测到的位置识别出这些漏洞。
为帮助减少混淆,本文对三个已在往年披露但仍未修复的漏洞提供技术更新:CVE-2020-8561、CVE-2020-8562 和 CVE-2021-25740。
为什么我们现在更新这些记录
虽然这些漏洞已公开多年,但近期生成官方 Open Source Vulnerabilities(OSV)文件的工作显示,其对应的 CVE 记录并未准确反映其状态。具体而言,一些记录暗示存在固定版本,而实际上,这些问题属于架构设计权衡,无法在不破坏 Kubernetes 基本功能的情况下通过代码完全修复。
修正这些记录对社区至关重要,原因包括:
- 自动化准确性:现代漏洞扫描器依赖精确的版本范围。不准确的修复标签会导致漏报,使用户产生虚假的安全感。
- 风险文档化:通过将这些问题正式标记为未修复,我们确保平台提供商和管理员了解持续需要管理层面的缓解措施。
为完整起见,我们还应提到 CVE-2020-8554 是一个未修复的 CVE,其 CVE 记录正确说明其影响所有版本。该记录也将更新为使用更标准化的版本号格式。
未修复架构风险的技术分析
以下漏洞将不会由 Kubernetes 项目修复。GitHub issue 仍是了解这些缺陷技术机制的最佳参考。
CVE-2020-8561:kube-apiserver 中的 Webhook 重定向
- 严重性:中等(4.1)。
- 问题:kube-apiserver 在与准入 Webhook 通信时会跟随 HTTP 重定向。能够配置 AdmissionWebhookConfiguration 的行为者可以将 API server 请求重定向到内部私有网络。
- 为何仍未修复:限制此行为将需要破坏许多合法集成所依赖的标准 HTTP 客户端行为。
- 缓解措施:将 API server 日志级别设置为低于 10(以防记录响应正文),并禁用动态性能分析(--profiling=false),以防止未经授权的日志级别更改。
CVE-2020-8562:通过 DNS TOCTOU 绕过代理
- 严重性:低(3.1)。
- 问题:API server 代理中的检查时到使用时(Time-of-Check to Time-of-Use,TOCTOU)竞争条件允许用户绕过 IP 限制。系统执行 DNS 检查以验证 IP,但随后会为实际连接执行第二次解析,攻击者可操纵这一过程。
- 为何仍未修复:修复该问题需要以某种方式固定解析后的 IP,而这会破坏复杂的分域 DNS 或动态 IP 环境。
- 缓解措施:为 API server 使用类似 dnsmasq 的本地 DNS 缓存服务器,并配置 min-cache-ttl,以在检查与连接之间强制保持一致响应。
CVE-2021-25740:通过 Endpoints 进行跨命名空间转发
- 严重性:低(3.1)。
- 问题:Endpoints 和 EndpointSlice API 对象中的设计缺陷允许用户手动指定 IP 地址,这可用于将 LoadBalancer 或 Ingress 指向其他命名空间中的后端。
- 为何仍未修复:这是 Endpoints API 的一项基本功能,被许多网络工具和 Operator 使用。
- 缓解措施:限制对 Endpoints(旧版)和 EndpointSlices 的写访问。自 Kubernetes 1.22 起,Kubernetes RBAC 授权模式不再在默认的 edit 和 admin ClusterRoles 中包含这些权限。该移除适用于使用 Kubernetes v1.22 创建的集群;对于从较旧版本升级的集群,管理员应手动审计并协调 system:aggregate-to-edit ClusterRole。
注意:
On June 1, 2026, these CVE records will be updated to correctly reflect the fact that all versions are affected. You may see them begin to appear in vulnerability scanner results.管理员需要采取的措施
Kubernetes 项目建议采用“安全配置优先”的方式来管理这些持续存在的风险:
VulnerabilityAction itemSeverity score (Rating)Command / configurationCVE-2020-8561Restrict Log Verbosity4.1 (Medium)Ensure--v is set to < 10 and --profiling=false.CVE-2020-8562Enforce DNS Consistency3.1 (Low)Deploy dnsmasq or a similar caching resolver on control plane nodes.CVE-2021-25740Hardened RBAC3.1 (Low)kubectl auth reconcile to remove Endpoints write access from broad roles.当集群使用 RBAC 授权模式时,CVE-2021-25740 的 RBAC 操作适用;这是使用标准 Kubernetes 工具创建的集群的默认模式。管理员应在非生产环境中独立测试并验证这些配置,并根据其特定威胁模型和风险承受能力评估架构风险。
结论:通过透明度实现成熟
协调这些记录的工作标志着安全生态系统的成熟。通过摆脱“仅补丁”思维,并准确记录架构债务,Kubernetes 项目为社区提供了保护现代云原生基础设施所需的高保真数据。
我们感谢安全研究人员 QiQi Xu、Javier Provecho 以及其他识别出这些风险的人,也感谢持续完善官方 Feed 的 SIG Security Tooling 贡献者。特别感谢 Rory McCune 通过其博客文章分享有关这些 CVE 的信息。
更新 2026/06/01:今天,Kubernetes SRC 已更新 CVE-2020-8554、CVE-2020-8561、CVE-2020-8562 和 CVE-2021-25740 的 CVE 记录。
- ← 上一篇
- 下一篇 →