在Kubernetes中发现了多个安全问题,当启用verbose日志选项时,将会暴露日志中的秘密数据。此次安全问题被评为中等
,CVSS为4.7 CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
。CVE-2020-8563的评级略高,因为泄露的凭证可以对底层的云提供商进行范围变更。
- CVE-2020-8563: vSphere Provider kube-controller-manager 的日志中的Secret泄露。
- CVE-2020-8564: 当文件畸形且日志级别>=4时,Docker配置的Secret就会被泄露。
- CVE-2020-8565: CVE-2019-11250的不完全修复,当logLevel>=9时,日志中的token泄漏。
- CVE-2020-8566: 当loglevel>=4时,Ceph RBD adminSecrets暴露在日志中。
你是否会有这样的漏洞?
- CVE-2020-8563 如果使用VSphere provider和kube-controller-manager 设置
logLevel>= 4
- CVE-2020-8564 如果拉取私密存储在docker配置文件中且
loglevel>=4
,则该漏洞很容易发生。此外,还要求docker配置文件格式错误。 - CVE-2020-8565 如果kube-apiserver使用
logLevel>=9
- CVE-2020-8566 如果支持Ceph RBD卷并且kube-controller-manager使用
logLevel>=4
则很容易受到攻击
受影响的版本
CVE-2020-8563 只影响 1.19.0 -1.19.2
. 所有其他的CVE都会影响1.19
、1.18
和1.17
及更早的版本。
已修复的版本
CVE-2020-8563 - v1.19.3
CVE-2020-8564 - v1.19.3, v1.18.10, v1.17.13
CVE-2020-8565 - v1.20.0-alpha2
影响力
如果启用了足够的详细日志记录,以下私密会在日志中暴露。
- CVE-2020-8563 - VSphere Cloud 证书
- CVE-2020-8564 - 在docker配置文件中拉取Secert或其他凭证。
- CVE-2020-8565 - Kubernetes 认证token (incl. bearer tokens and basic auth)
- CVE-2020-8566 - Ceph RBD Admin secrets
如何缓解这些漏洞?
所有四个漏洞只有在相应组件的日志等级被启用时才会暴露,而默认情况下没有这样做。因此,这些漏洞都可以通过确保日志级别低于4来缓解。
所有四个漏洞都可以通过防止不受信任地访问日志文件来额外缓解。攻击者只有在能够访问目标日志的情况下才能恢复这些漏洞所暴露的敏感信息。
如果在日志文件中发现有暴露的secrets,建议尽快轮换。暴露可能发生在Kubernetes服务器端组件中,包括kube-apiserver
和kube-contoller-manager
。使用受影响代码的客户端工具,如kubectl
,也可以记录secret数据。
探测
日志可以搜索任何已经暴露的秘密值。每个漏洞的单独拉取请求都包含了可能包含秘密值的特定日志条目的细节。
例如,我们可以检查kube-controller-manager
日志中暴露Ceph RBD
管理秘密的条目。
$ kubectl logs -n kube-system kube-controller-manager | grep rbd | grep key