CVE-2026-105223 影响 maclof/kubernetes-client 这个 PHP 库,版本 0.17.0 到 0.31.x,修复版本是 0.32.0。这个漏洞的形态很典型,值得单独拎出来讲。
问题是什么
在 parseKubeconf 里,当 kubeconfig 文件缺少 certificate-authority-data 字段时,库会禁用 TLS 证书校验。
注意关键词:静默。它不会报错,不会警告,不会在日志里留任何痕迹。连接照常建立,只是不再验证对端身份。
能造成什么 攻击者只要处在网络路径上(共享云网络、多租户环境、未加密的内网段),就可以冒充 Kubernetes API Server,窃取 Bearer token 或 Basic 凭据,并操纵 API 流量。
后果是完整的集群接管:部署恶意工作负载、读取敏感数据、中断服务。
CVSS 7.4,EPSS 0.2% EPSS 很低意味着短期被大规模利用的概率不高,但 CVSS 的攻击向量是网络(AV:N)。低概率不等于低影响,尤其是这类凭据泄露的影响是集群级别的。
为什么这类漏洞特别值得警惕 它不在你的主流程代码里,它是一个第三方依赖。你不会 review 它的每一行,也不会在升级日志里注意到它。
更麻烦的是触发条件是配置缺省——缺少 certificate-authority-data 才触发。也就是说,如果你的 kubeconfig 写得很规范,反而不会遇到;越是随手写的配置越危险。这让它在测试阶段很难被发现。
排查清单
- 全局搜 composer.json / composer.lock,确认有没有直接或间接依赖 maclof/kubernetes-client。
- 有就升到 0.32.0 及以上。
- 检查所有 kubeconfig 文件,确认
certificate-authority-data字段存在且不为空。 - 轮换可能已经暴露的凭据——如果这个库在 CI/CD 流水线里用过,token 可能已经泄露。
扩展到一般原则 任何「解析配置文件」的代码,都要特别检查它在字段缺失时的降级行为。常见的两种坑:
- 字段缺失时跳过校验(这次的情况)。
- 字段缺失时回退到不安全的默认值。
排查方法:在代码里搜 verify、tls、ssl、insecure、skip 这类关键字,看它们在缺省分支里做了什么。这类问题靠功能测试永远测不出来,只能靠读代码或者专门的依赖审计。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。