CVE-2025-9708: Kubernetes C#客户端:自定义CA模式下不当的证书验证可能导致中间人攻击
问题编号: #134063
CVSS评级: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N — 中等 (6.8)
漏洞描述: Kubernetes C#客户端中存在一个漏洞,其证书验证逻辑会接受来自任何证书颁发机构(CA)的、构造正确的证书,而没有正确验证信任链。此缺陷允许恶意行为者提供伪造的证书,并可能拦截或操纵与Kubernetes API服务器的通信,从而导致潜在的中间人攻击和API冒充。
我是否受影响? 如果您符合以下情况,则存在风险:
- 您使用Kubernetes C#客户端通过TLS/HTTPS连接到Kubernetes API服务器。
- 在您的kubeconfig文件中使用了自定义CA证书。
- 您的连接发生在不受信任的网络上。
受影响版本:
- 在下一个版本(<=17.0.13)之前的所有Kubernetes C#客户端版本。
如何缓解此漏洞? 可通过以下方式缓解此问题:
- 尽快部署已修复此问题的Kubernetes C#客户端补丁版本。
- 将CA证书移至系统信任存储区,而不是在kubeconfig文件中指定它们。
- 注意: 这种方法可能会引入新的风险,因为系统上的所有进程将开始信任由该CA签名的证书。
- 如果必须使用受影响版本,可以禁用自定义CA,并将CA添加到机器的受信任根证书中。
已修复版本:
- Kubernetes C#客户端 >= v17.0.14
检测方法: 要确定您的应用程序是否受影响:
- 检查您对Kubernetes C#客户端的使用情况,并审查证书验证逻辑。
- 检查您的kubeconfig文件,确定是否使用了自定义CA证书(即
clusters部分中的certificate-authority字段)。 - 检查客户端日志中是否存在意外的或不信任的证书连接。
如果您发现此漏洞已被利用的证据,请通过 security@kubernetes.io 联系我们。
致谢: 此漏洞由 @elliott-beach 报告。 问题的修复和协调由以下人员完成:
- Boshi Lian (@tg123)
- Brendan Burns (@brendandburns)
- Rita Zhang (@ritazh)