文档首页/ 云容器引擎 CCE/ 服务公告/ 漏洞公告/ Kubernetes kubelet资源管理错误漏洞公告(CVE-2020-8557)
更新时间:2023-08-02 GMT+08:00

Kubernetes kubelet资源管理错误漏洞公告(CVE-2020-8557)

漏洞详情

kubelet的驱逐管理器(eviction manager)中没有包含对Pod中挂载的/etc/hosts文件的临时存储占用量管理,因此在特定的攻击场景下,一个挂载了/etc/hosts的Pod可以通过对该文件的大量数据写入占满节点的存储空间,从而造成节点的拒绝访问(Denial of Service)。

表1 漏洞信息

漏洞类型

CVE-ID

漏洞级别

披露/发现时间

资源管理错误

CVE-2020-8557

2020-07-15

漏洞影响

kubelet的驱逐管理器(eviction manager)中没有包含对Pod中挂载的/etc/hosts文件的临时存储占用量管理,因此在特定的攻击场景下,一个挂载了/etc/hosts的Pod可以通过对该文件的大量数据写入占满节点的存储空间,从而造成节点的拒绝访问(Denial of Service)。该漏洞为中危漏洞,CVSS评分为5.5

具备以下特权的Pod拥有节点上/etc/hosts文件的写入权限:

  • Pod中的容器具备CAP_DAC_OVERRIDE系统权限(默认具备)。
  • Pod以root(UID为0)用户启动或者Pod Security Context中的allowPrivilegeEscalation设置为true(当以特权容器或者加了CAP_SYS_ADMIN权限运行时默认为true)。
下列版本的kubelet组件均在此CVE的影响范围内:
  • kubelet v1.18.0~v1.18.5
  • kubelet v1.17.0~v1.17.8
  • kubelet<v1.16.13

漏洞修复方案

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

  • 通过设置集群Pod安全策略或admission准入机制强制Pod删除CAP_DAC_OVERRIDE系统权限:
    securityContext:
          capabilities:
            drop: ["DAC_OVERRIDE"]
  • 通过使用集群Pod安全策略或其他admission准入机制限制以root用户启动容器,或设置参数allowPrivilegeEscalation为false:
    securityContext:
          allowPrivilegeEscalation: false
  • 通过以下命令对容器内的/etc/hosts文件进行监控,如果该文件的大小异常,请采取相应告警或容器隔离措施。
    find /var/lib/kubelet/pods/*/etc-hosts -size +1M