CVE-2023-3893: kubernetes-csi-proxy输入验证不足导致权限提升
漏洞描述
CVSS评分: CVSS:3.1/av:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - HIGH (8.8)
在Kubernetes中发现一个安全漏洞,能够在Windows节点上创建Pod的用户可能利用此漏洞提升到这些节点上的管理员权限。只有在包含运行kubernetes-csi-proxy的Windows节点的Kubernetes集群才会受到影响。
受影响范围
我是否受影响?
任何包含运行kubernetes-csi-proxy的Windows节点的Kubernetes环境都会受到影响。这是Windows节点上常见的默认配置。运行kubectl get nodes -l kubernetes.io/os=windows命令可以查看是否有Windows节点在使用。
受影响版本
- kubernetes-csi-proxy <= v2.0.0-alpha.0
- kubernetes-csi-proxy <= v1.1.2
缓解措施
提供的补丁完全缓解了该漏洞,且没有已知的副作用。完全缓解此类问题需要应用针对CVE-2023-3676、CVE-2023-3955和CVE-2023-3893的补丁。
除了应用提供的补丁外,没有其他已知的缓解措施。
修复版本
- kubernetes-csi-proxy master - 通过确保PowerShell中的所有路径和环境变量都经过传递修复
- kubernetes-csi-proxy v2.0.0-alpha.1 - 通过在库开发分支上cherry-pick确保PowerShell中的所有路径和环境变量都经过传递修复
- kubernetes-csi-proxy v1.1.3 - 通过确保PowerShell中的所有路径和环境变量都经过传递修复
升级步骤
升级流程:隔离节点 -> 停止相关Windows服务 -> 替换csi-proxy.exe二进制文件 -> 重启相关Windows服务 -> 取消隔离节点。
详细安装文档请参阅:https://github.com/kubernetes-csi/csi-proxy#installation
如果使用Windows主机进程守护进程集来运行kubernetes-csi-proxy(如https://github.com/kubernetes-csi/csi-driver-smb/blob/master/charts/latest/csi-driver-smb/templates/csi-proxy-windows.yaml),只需将镜像升级到固定版本,例如ghcr.io/kubernetes-sigs/sig-windows/csi-proxy:v1.1.3。
检测方法
Kubernetes审计日志可用于检测此漏洞是否正在被利用。包含嵌入式PowerShell命令的Pod创建事件是强烈利用迹象。
如果发现此漏洞已被利用的证据,请联系security@kubernetes.io。
致谢
此漏洞由James Sturtevant (@jsturtevant)和Mark Rossetti (@marosset)在修复CVE-2023-3676的过程中发现(原始CVE由Tomer Peled @tomerpeled92报告)。
修复团队:
- James Sturtevant @jsturtevant
- Mark Rossetti @marosset
- Andy Zhang @andyzhangx
- Justin Terry @jterry75
- Kulwant Singh @KlwntSingh
- Micah Hausler @micahhausler
- Rita Zhang @ritazh
发布经理:
- Mauricio Poppe @mauriciopoppe
元数据
标签:
- area/kubelet
- area/security
- committee/security-response
- kind/bug
- lifecycle/frozen
- official-cve-feed
- sig/windows
- triage/accepted
状态:已完成