Kubernetes subpath符号链接交换安全漏洞(CVE-2021- 25741)
漏洞详情
社区在 Kubernetes 中发现了一个安全问题,用户可以创建一个带有subPath volume挂载的容器,访问卷外的文件和目录,包括主机文件系统上的文件和目录。
容器使用subPath去挂载一些文件或者目录时,攻击者可能利用Symlink Exchange 访问除挂载目录之外的目录或者主机上的文件,造成越权。
漏洞类型 |
CVE-ID |
漏洞级别 |
披露/发现时间 |
---|---|---|---|
资源管理错误 |
中 |
2021-09-15 |
漏洞影响
该漏洞涉及VolumeSubpath特性开关开启场景(默认开启),可能造成以下影响:
- 若恶意用户可以创建一个带有子路径卷挂载的容器,则可以访问卷外的文件和目录,包括主机文件系统上的文件和目录。
- 集群管理员已限制创建 hostPath 挂载的能力的集群受到的影响最严重。利用该漏洞可以在不使用 hostPath 功能的情况下进行类似 hostPath 的访问,从而绕过限制。
- 在默认的 Kubernetes 环境中,漏洞利用可用于掩盖对已授予特权的滥用。
判断方法
涉及所有集群(新建的1.19.10及以上版本集群不受该漏洞影响)。
登录节点,执行命令,查看BuildDate,如果查看BuildDate是在2021-08-20之后的时间,则表示已经修复,不受该漏洞影响。
漏洞处理方案
您可以禁用 kubelet 上的VolumeSubpath feature gate,并删除任何使用subPath功能的现有 Pod。
- 以root用户登录CCE Node节点。
- 修改kubelet配置参数,关闭VolumeSubpath特性。
vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml
添加VolumeSubpath: false字段
- 重启kubelet。
systemctl restart kubelet
- 确认kubelet新进程已启动,且已关闭VolumeSubpath。
vi /var/paas/sys/log/kubernetes/kubelet.log
搜索VolumeSubpath=false,如果能搜到说明关闭成功。
- 删除任何使用subPath功能的Pod。
VolumeSubpath特性开启或回退
- 修改kubelet配置文件,删除VolumeSubpath相关字段。
vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml
- 重启kubelet。
systemctl restart kubelet
- 确认kubelet新进程已启动,且重启后的kubelet.log日志中无VolumeSubpath=false相关字段。