近日Kubernetes社区披露了安全漏洞CVE-2022-3294,攻击者可以通过修改Node对象并向其发送代理请求,利用kube-apiserver中的缺陷绕过关于节点代理地址的校验,并访问APIServer所在私有网络内可能的服务端点。

CVE-2022-3294漏洞被评估为中危漏洞。在CVSS的评分为6.6

影响范围

下列版本的kube-apiserver组件均在该漏洞影响范围内:

  • v1.25.0~v1.25.3
  • v1.24.0~v1.24.7
  • v1.23.0~v1.23.13
  • v1.22.0~v1.22.15
  • ≤v1.21

社区在下列版本中修复了该问题:

  • v1.25.4
  • v1.24.8
  • v1.23.14
  • v1.22.16

关于该漏洞的详细信息,请参见#113757

漏洞影响

Kubernetes支持节点代理,它允许kube-apiserver作为客户端访问Kubelet的端点,以建立与Pod的连接,检索容器日志等。攻击者如果获取Node的创建、修改以及发送代理请求的RBAC权限时,可以绕过kube-apiserver对节点代理地址的校验,并通过以节点为目的地的认证请求,访问APIServer私有网络内可能的服务端点。

当集群APIServer可以连接到用户不应该访问的端点时,该集群就在该漏洞影响范围内,包括以下端点:

  • kube-apiserver和Worker节点所在的独立网络中。
  • Localhost本地服务。

配置了mTLS的服务仅当接受与节点相同的客户端证书认证时,才会受到影响,集群受影响的严重性取决于被攻击者利用的服务端点的权限和敏感性。

如何防范

  1. 严格控制集群内Node节点的RBAC访问权限。
  2. 集群APIServer审计日志中包含了Node创建或修改操作的记录,如果发现可疑的请求IP地址以及对应节点的Proxy代理请求,则该集群可能受到了该漏洞攻击。
  3. 您可以关注容器服务ACK版本发布公告,通过升级集群操作完成修复。升级具体操作,请参见升级ACK集群K8s版本