CVE-2025-62878: 本地路径供应器路径遍历漏洞
概述
| 项目 | 值 |
|---|
| CVE ID | CVE-2025-62878 |
| GHSA ID | GHSA-jr3w-9vfr-c746 |
| 严重性 | 严重 (CVSS 10.0) |
| CWE | CWE-23 (相对路径遍历) |
| 受影响组件 | rancher/local-path-provisioner |
| 受影响版本 | v0.0.27 ~ v0.0.32 |
| 已修复版本 | v0.0.33+ |
漏洞描述
StorageClass 的 pathPattern 参数存在路径遍历漏洞。恶意用户可以通过使用相对路径元素(例如 ../)来操纵 pathPattern,从而创建指向主机节点上任意位置的 PersistentVolume,绕过已配置的基目录限制。
这使得攻击者能够:
- 访问敏感的主机文件(例如
/etc/kubernetes/pki/)
- 覆盖关键系统文件
- 通过窃取 Kubernetes CA 私钥实现整个集群的沦陷
受影响版本(已验证)
注意:官方 GitHub 安全公告指出 "< 0.0.34" 受影响,但我们的测试确认:
- v0.0.33 已打补丁
- v0.0.26 及更早版本不受影响(pathPattern 功能不存在)
- 实际受影响范围:v0.0.27 <= 版本 <= v0.0.32
时间线
| 事件 | 日期 |
|---|
| pathPattern 功能引入 | 2024-05-26 (提交 af85381) |
| 首个受影响版本 (v0.0.27) 发布 | 2024-05-29 |
| 修复提交 | 2025-12-24 (提交 1ed6b54) |
|
复现
有关详细的复现步骤和脚本,请参见 exploit/ 目录。
快速开始
# 1. 安装受影响版本
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.30/deploy/local-path-storage.yaml
# 2. 应用利用代码
kubectl apply -f exploit/malicious-storageclass.yaml
kubectl apply -f exploit/malicious-pvc.yaml
kubectl apply -f exploit/exploit-pod.yaml
# 3. 验证利用效果
kubectl get pv -o jsonpath='{.items[0].spec.hostPath.path}'
# 输出:/etc/kubernetes/pki
kubectl exec pki-exploit-pod -- ls -la /stolen-pki/
# 显示 Kubernetes PKI 证书和私钥
修复措施
升级到 v0.0.33 或更高版本:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.33/deploy/local-path-storage.yaml
参考