近日Kubernetes社区披露了多个组件的日志级别≥指定日志级别时,存在敏感信息泄露的问题,涉及kube-apiserver、kube-controller-manager、kubectl客户端等多个组件。

目前CVE-2020-8564、CVE-2020-8565、CVE-2020-8566的漏洞评级为中危漏洞

影响范围

  • 对于社区Kubernetes。
    当前1.19.2之前的所有Kubernetes发行版本均存在漏洞,以下为修复措施:
    • 关于如何修复CVE-2020-8564漏洞,请参见94712
    • 关于如何修复CVE-2020-8565漏洞,请参见95316
    • 关于如何修复CVE-2020-8566漏洞,请参见95245
  • 对于ACK集群。
    • 如果您的集群是标准托管版或Serverless集群,不在该漏洞影响范围内。
    • 如果您的集群是标准专有版集群且没有修改系统组件的日志级别,也不在该漏洞的影响范围内。
    • 如果您的集群是标准专有版集群,且指定组件的日志级别高于触发漏洞的日志级别,则存在漏洞。更多信息,请参见防范措施

漏洞影响

  • CVE-2020-8564

    当在Docker Config文件中配置了用于拉取私仓镜像的密钥,且kubelet组件的日志级别≥4时,攻击者可以通过kubelet日志查看密钥信息。

  • CVE-2020-8565

    当kube-apiserver的日志级别≥9时,用于鉴权的bearer tokenbasic auth token存在泄露风险。

  • CVE-2020-8566

    当kube-controller-manager日志级别≥4且应用中使用了Ceph RBD块存储时,攻击者可以通过controller-manager日志获取RBD Admin密钥。

防范措施

如果您的标准专有版集群中有指定组件的日志级别高于触发漏洞的日志级别,建议您采取以下防范措施:
  • 请确保对应组件的日志读取权限在一个可信范围。
  • 如果存在攻击者可能读取日志的场景,请及时轮转对应密钥,调整日志级别。
  • 使用漏洞代码的一些客户端工具(例如kubectl)也存在信息泄露的风险。当使用指定日志级别的kubectl操作时,请确保输出日志的安全性。