Kubernetes容器存储接口(CSI)驱动 for NFS 中发现了一个路径遍历漏洞,可能允许攻击者删除或修改NFS服务器上非预期的目录。
该漏洞源于对卷标识符中 subDir 参数的验证不足,暴露了允许用户创建引用 NFS CSI 驱动的 PersistentVolume 的集群。
漏洞存在于 CSI Driver for NFS 在卷操作期间处理 subDir 参数的方式中。具有创建引用 nfs.csi.k8s.io 驱动的 PersistentVolume 权限的攻击者,可以构造包含路径遍历序列(../)的卷标识符。
当驱动处理卷删除或清理操作时,它可能会在 NFS 导出中远超出预期管理路径的目录上进行操作。
例如,恶意 volumeHandle 条目引用了诸如 /tmp/mount-uuid/legitimate/../../../exports/subdir 的路径,可能导致 CSI 控制器完全遍历出指定的目录范围,从而在 NFS 服务器上触发非预期的修改或删除。
用于NFS的Kubernetes CSI驱动漏洞
如果组织满足以下所有条件,则可能面临风险:
- 在其 Kubernetes 集群中运行 CSI Driver for NFS (nfs.csi.k8s.io)
- 其集群允许非管理员用户创建引用 NFS CSI 驱动的 PersistentVolume
- 其部署的 CSI 驱动版本未对 subDir 字段中的遍历序列进行验证
所有 v4.13.1 之前的 CSI Driver for NFS 版本均受此漏洞影响,因为遍历验证修复是在该版本中引入的。
管理员可以通过检查使用 NFS CSI 驱动的 PersistentVolume 并审查 volumeHandle 字段中是否存在诸如 ../ 的遍历序列,来检查其集群是否暴露。
此外,应审查 CSI 控制器日志中是否有非预期的目录操作。类似于 "Removing subPath: /tmp/mount-uuid/legitimate/../../../exports/subdir" 的日志条目是漏洞被利用的有力指标。存在活跃利用证据的集群应立即向 security@kubernetes.io 报告。
主要修复措施是将 CSI Driver for NFS 升级到 v4.13.1 或更高版本,该版本包含了对 subDir 字段中遍历序列的正确验证。
作为临时措施,管理员应将 PersistentVolume 创建权限限制在受信用户范围内,并审计 NFS 导出,以确认只有预期的目录可由驱动写入。
作为更广泛的安全最佳实践,绝不应授予不受信用户创建引用外部存储驱动的任意 PersistentVolume 的权限。
该漏洞由 SentinelOne 高级参谋安全研究员 Shaul Ben Hai 负责任地披露。修复程序由 CSI Driver for NFS 维护者 Andy Zhang 和 Rita Zhang 与 Kubernetes 安全响应委员会协调开发和部署。



