漏洞概述
SUSE Rancher安全团队发布安全公告,警告其GitOps大规模管理引擎Fleet中存在一个高危漏洞(编号CVE-2024-52284,CVSS评分7.7)。该漏洞会导致存储在Fleet的BundleDeployment资源中的Helm敏感配置以明文形式暴露,使凭证和密钥面临泄露风险。
技术背景
Fleet是一款专为管理单/多集群Kubernetes部署设计的GitOps工具。SUSE官方说明指出:"Fleet不仅能轻量化管理单集群,更擅长处理大规模场景——所有资源都会被动态转换为Helm图表,并利用Helm作为引擎完成集群内所有部署。"这种面向规模化和自动化的设计特性,使得Fleet的安全问题对管理敏感工作负载的企业影响尤为显著。
漏洞机理
当使用Fleet管理Helm图表时,漏洞会以两种形式产生危害:
- 敏感数据未授权泄露:任何对BundleDeployment资源具有GET或LIST权限的用户,均可获取包含凭证等敏感信息的Helm配置值
- 静态数据未加密存储:默认配置下BundleDeployment未启用Kubernetes静态加密功能,导致敏感数据在集群存储中以明文形式持久化
这与Helm v3的安全机制形成鲜明对比——后者将图表状态(含配置值)存储在Kubernetes密钥中,提供内置保护。
潜在影响
受影响环境中,"凭证等敏感信息既以明文形式存储,又通过API响应暴露"。具体危害程度取决于泄露凭证的类型和权限范围,可能导致:
- 非Rancher相关凭证泄露时,其最终影响的机密性、完整性和可用性取决于凭证在其所属服务中的权限级别
- 使用Fleet管理关键基础设施的企业,可能面临云服务、数据库等敏感系统的未授权访问
修复方案
SUSE已发布包含Helm配置安全处理机制的新版本,具体改进包括:
- 执行fleet apply的git任务会为Helm配置值创建Kubernetes密钥
- Fleet控制器生成BundleDeployments时,会在命名空间内为每个部署创建Helm配置密钥
- Fleet代理在部署bundle时从密钥中获取Helm配置值
已修复版本:
- Fleet v0.14.0
- Fleet v0.13.1
- Fleet v0.12.6
- Fleet v0.11.10
临时缓解措施
无法立即升级的用户可通过谨慎管理Helm配置文件路径降低风险:
# 风险配置(需避免)
helm:
valuesFiles:
- config-chart/values.yaml # 该路径文件不会被排除 → 存在风险
# 安全配置(推荐)
helm:
valuesFiles:
- values.yaml # 该路径文件会被自动排除
参考来源:
CVE-2024-52284: SUSE Fleet Vulnerability Exposes Sensitive Helm Values in Plain Text
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)