kube-proxy安全漏洞CVE-2020-8558公告
华为云CCI团队已经于7月10日识别kube-proxy安全漏洞CVE-2020-8558并对其进行了详细分析,分析结论为:基于CCI服务当前形态,用户与CCI服务均不受本次漏洞的影响,无需进行处理。
漏洞详情
Kubernetes官方发布安全漏洞(CVE-2020-8558),Kubernetes节点的设置允许相邻主机绕过本地主机边界进行访问。
Kubernetes集群节点上如果有绑定在127.0.0.1上的服务,则该服务可以被同一个LAN或二层网络上的主机访问,从而获取接口信息。如果绑定在端口上的服务没有设置身份验证,则会导致该服务容易受到攻击。
参考链接:
漏洞根因
kube-proxy为实现功能,开启了net.ipv4.conf.all.route_localnet=1内核参数。该参数允许内核接受来自其他节点的对于本机localhost的网络请求。
如何判断是否涉及漏洞
- 使用了受影响的集群版本
- kubelet/kube-proxy v1.18.0-1.18.3
- kubelet/kube-proxy v1.17.0-1.17.6
- kubelet/kube-proxy <=1.16.10
- 集群内可信、不可信节点共享一个二层网络域(例如,同一个LAN)
- 集群允许不可信容器运行时包含CAP_NET_RAW(Kubernetes集群默认包含该能力)
- 节点(包含使用主机网络的容器)上存在监听localhost且未开启鉴权的服务
更多判断是否涉及漏洞的内容请参见https://github.com/kubernetes/kubernetes/issues/92315中“Am I vulnerable?”。
漏洞分析结果
综合以上分析,CCI服务不受本次漏洞影响,因为:
- CCI当前集群基于Kubernetes 1.15版本,但kube-proxy组件使用自研代码,不涉及net.ipv4.conf.all.route_localnet=1参数。
- CCI的集群形态与普通kubernetes集群不同。CCI基于安全容器并与华为云网络服务深度整合,用户VPC网络与CCI物理主机网络不在同一个2层域中。CCI服务侧没有信息泄漏风险。
- 用户容器内核默认没有开启net.ipv4.conf.all.route_localnet=1参数,用户绑定在localhost的进程无法进行同VPC内跨节点访问。用户侧没有信息泄漏风险。