文档首页/ 云容器引擎 CCE/ 服务公告/ 漏洞公告/ Kubernetes subpath符号链接交换安全漏洞(CVE-2021- 25741)
更新时间:2023-08-02 GMT+08:00

Kubernetes subpath符号链接交换安全漏洞(CVE-2021- 25741)

漏洞详情

社区在 Kubernetes 中发现了一个安全问题,用户可以创建一个带有subPath volume挂载的容器,访问卷外的文件和目录,包括主机文件系统上的文件和目录。

容器使用subPath去挂载一些文件或者目录时,攻击者可能利用Symlink Exchange 访问除挂载目录之外的目录或者主机上的文件,造成越权。

表1 漏洞信息

漏洞类型

CVE-ID

漏洞级别

披露/发现时间

资源管理错误

CVE-2021-25741

2021-09-15

漏洞影响

该漏洞涉及VolumeSubpath特性开关开启场景(默认开启),可能造成以下影响:

  • 若恶意用户可以创建一个带有子路径卷挂载的容器,则可以访问卷外的文件和目录,包括主机文件系统上的文件和目录。
  • 集群管理员已限制创建 hostPath 挂载的能力的集群受到的影响最严重。利用该漏洞可以在不使用 hostPath 功能的情况下进行类似 hostPath 的访问,从而绕过限制。
  • 在默认的 Kubernetes 环境中,漏洞利用可用于掩盖对已授予特权的滥用。

判断方法

涉及所有集群(新建的1.19.10及以上版本集群不受该漏洞影响)。

登录节点,执行命令,查看BuildDate,如果查看BuildDate是在2021-08-20之后的时间,则表示已经修复,不受该漏洞影响。

漏洞处理方案

您可以禁用 kubelet 上的VolumeSubpath feature gate,并删除任何使用subPath功能的现有 Pod。

  1. 以root用户登录CCE Node节点。
  2. 修改kubelet配置参数,关闭VolumeSubpath特性。

    vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml

    添加VolumeSubpath: false字段

  3. 重启kubelet。

    systemctl restart kubelet

  4. 确认kubelet新进程已启动,且已关闭VolumeSubpath。

    vi /var/paas/sys/log/kubernetes/kubelet.log

    搜索VolumeSubpath=false,如果能搜到说明关闭成功。

  5. 删除任何使用subPath功能的Pod。

VolumeSubpath特性开启或回退

  1. 修改kubelet配置文件,删除VolumeSubpath相关字段。

    vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml

  2. 重启kubelet。

    systemctl restart kubelet

  3. 确认kubelet新进程已启动,且重启后的kubelet.log日志中无VolumeSubpath=false相关字段。