文档首页/ 云容器引擎 CCE/ 服务公告/ 漏洞公告/ Kubernetes kubelet和kube-proxy授权问题漏洞公告(CVE-2020-8558)
更新时间:2023-06-09 GMT+08:00
分享

Kubernetes kubelet和kube-proxy授权问题漏洞公告(CVE-2020-8558)

漏洞详情

Kubernetes官方发布安全公告,其核心组件kube-proxy存在主机边界绕过漏洞(CVE-2020-8558)。利用漏洞攻击者可能通过同一局域网下的容器,或在集群节点上访问同一个二层域下的相邻节点上绑定监听了本地127.0.0.1端口的TCP/UDP服务,从而获取接口信息。如果绑定在端口上的服务没有设置身份验证,则会导致该服务容易受到攻击。例如,如果集群管理员运行监听了127.0.0.1:1234的TCP服务,由于这个bug,该服务将有可能被与该节点在同一局域网中的其他主机,或与该服务运行在同一节点上的容器所访问。如果端口1234上的服务不需要额外的认证(因为假设只有其他localhost进程可以),那么很容易受到利用此bug进行攻击。

华为云提醒使用kube-proxy的用户及时安排自检并做好安全加固。

详情请参考链接:https://github.com/kubernetes/kubernetes/issues/92315

表1 漏洞信息

漏洞类型

CVE-ID

漏洞级别

披露/发现时间

代码注入

CVE-2020-8558

2020-07-08

漏洞影响

当攻击者拥有主机网络配置能力或运行在一个具备了CAP_NET_RAW能力的容器实例时,就可以获取在目标节点上监听了127.0.0.1的服务socket信息。如果在目标主机上存在127.0.0.1可以访问到且不需要任何认证鉴权的暴露服务,那么该服务信息就能被攻击者获取。问题详情请参见Placeholder issue

可能的攻击者:

  • 同一交换机内的其他共享主机实例。
  • 本机的运行容器。

在下列版本的kube-proxy组件均在此CVE的影响范围内:

  • kube-proxy v1.18.0~v1.18.3
  • kube-proxy v1.17.0~v1.17.6
  • kube-proxy <v1.16.10

CCE集群控制面已经通过安全组进行防护,只允许从租户节点或者相邻节点访问安全端口,默认安全。

集群node节点上系统组件监听在127.0.0.1的端口只涉及健康检查、监控信息查询等请求,不会有信息泄露风险。

综上,该CVE对CCE集群影响不大。

漏洞修复方案

目前官方已提供安全版本修复了该漏洞,请受影响的用户升级至以下安全版本。

  • kubelet/kube-proxy v1.18.4+
  • kubelet/kube-proxy v1.17.7+
  • kubelet/kube-proxy v1.16.11+

建议您采取以下安全防范措施:

  • 如果业务容器需使用主机网络模式且又监听在非安全端口上,可以通过在节点上手动添加iptables规则来缓解此漏洞。
    执行以下命令,在集群中配置iptables规则,用于拒绝非本地对127.0.0.1的访问流量:
     iptables -I INPUT --dst 127.0.0.0/8 ! --src 127.0.0.0/8 -m conntrack ! --ctstate RELATED,ESTABLISHED,DNAT -j DROP

    如果集群不需要开启API Server不安全端口,可以将--insecure-port=0添加到kubernetes API服务器命令行来禁用端口。

  • 如集群内运行有不受信的容器,需要manifest文件中关闭CAP_NET_RAW能力,可执行如下命令:
    securityContext:
          capabilities:
            drop: ["NET_RAW"]

修复漏洞前请将资料备份,并进行充分测试。

相关文档