2023年11月15日,在Kubernetes中发现了一个安全问题,允许能够在 Windows 节点上创建 Pods 和持久卷的用户可能会升级到这些节点上的管理员权限。仅当 Kubernetes 集群使用 Windows 节点的树形存储插件时才受到影响,请各位用户尽快安装漏洞补丁。
漏洞风险: 使用yaml在Windows node上创建pod和挂载目录时,Kubelet会使用内置(in-tree)存储插件,如azure的插件会获取volumes.azureDisk.diskURI传入的MountSensitive的source参数,并将参数拼接至mklink命令语句中,并在 cmd 中使用管理员权限执行语句,造成在宿主机 node 上以管理员权限执行任意命令。kubernetes支持包括iscsi/nfs/azure/aws/等20+种存储插件。
该漏洞在新版本中已得到修复,处理输入时 Kubernetes 改用符号链接(symbolic link)链接路径,避免命令拼接导致的命令注入和权限提升。当Kubernetes集群使用Windows nodes的内置(in-tree)存储插件挂载目录时,才会受到影响。
风险等级:高风险。
影响范围:启动DNS服务的所有Windows Server版本
kubernetes@[1.8.0, 1.28.4)
github.com/kubernetes/kubernetes@[1.8.0, 1.27.8)
kubernetes@[1.8.0, 1.27.8)
github.com/kubernetes/kubernetes@[1.8.0, 1.28.4)
kubernetes@[1.8.0, 1.26.11)
kubernetes@[1.8.0, 1.25.16)
github.com/kubernetes/kubernetes@[1.8.0, 1.26.11)
github.com/kubernetes/kubernetes@[1.8.0, 1.25.16)
修复建议:基于注册表的解决办法(无需重启服务器,需重启DNS服务):
将组件kubernetes升级至1.27.8及以上版本
将组件github.com/kubernetes/kubernetes升级至1.28.4及以上版本
将组件kubernetes升级至1.26.11及以上版本
将kubernetes升级至1.25.16、1.26.11、v1.27.8、v1.28.4或更高版本
将组件github.com/kubernetes/kubernetes升级至1.26.11及以上版本
将组件github.com/kubernetes/kubernetes升级至1.25.16及以上版本
将组件kubernetes升级至1.28.4及以上版本
将组件github.com/kubernetes/kubernetes升级至1.27.8及以上版本
进行安全更新方法:
https://github.com/kubernetes/kubernetes/issues/121879