
ثغرة GIT | إرجاع السطر و RCE عند الاستنساخ
CVE-2025-48384 هي ثغرة أمنية خطيرة في Git، نظام التحكم في الإصدارات الموزعة واسع الاستخدام. تتضمن معالجة غير سليمة لأحرف الإرجاع (CR) في قيم التهيئة، مما قد يؤدي إلى مشكلات في اجتياز المسار أثناء عمليات سحب الوحدات الفرعية. يسمح هذا الخلل بتطبيق تعليمات برمجية عشوائية محتملة في ظل ظروف محددة. تم الكشف عن الثغرة علنًا في 8 يوليو 2025، وآخر تعديل في 26 أغسطس 2025. تم إضافتها إلى كتالوج الثغرات المستغلة المعروفة (KEV) التابع لوكالة الأمن السيبراني وأمن البنية التحتية الأمريكية (CISA) في 25 أغسطس 2025، مما يشير إلى استغلال نشط في البيئة الحية، مع تاريخ استحقاق المعالجة في 15 سبتمبر 2025.
تنشأ المشكلة من كيفية معالجة Git لقيم التهيئة:
يمكن أن يتسبب هذا التناقض في سحب وحدة فرعية إلى موقع غير صحيح إذا كان مسارها يتضمن CR زائد في النهاية. إذا قام مهاجم بإعداد رابط رمزي يشير إلى هذا المسار المعدل إلى دليل hooks الخاص بالوحدة الفرعية — وتحتوي الوحدة الفرعية على hook قابل للتنفيذ من نوع post-checkout — فقد يتم تنفيذ السكربت hook عن غير قصد بعد السحب، مما يؤدي إلى تطبيق تعليمات برمجية عشوائية.
تستغل الثغرة تضاربًا في تفسير تحليل تهيئة Git:
submodule/path<CR> على أنه submodule/path بعد فقدان الـ CR..git/hooks/post-checkout)، مما يسمح بتنفيذ hooks ضارة أثناء عمليات مثل git submodule update أو git clone --recurse-submodules.يتم تصنيف ذلك تحت:
ناقل الهجوم قائم على الشبكة (AV:N)، مع تعقيد عالٍ (AC:H)، صلاحيات منخفضة مطلوبة (PR:L)، تفاعل مستخدم مطلوب (UI:R)، ونطاق متغير (S:C)، مما يؤثر بشكل كبير على السرية والنزاهة والتوفر (C:H/I:H/A:H).
تؤثر الثغرة على إصدارات Git قبل الإصدارات التي تم تصحيحها التالية:
تؤثر على Git عبر منصات مختلفة، بما في ذلك Linux وmacOS وWindows، ولكنها ذات صلة خاصة في بيئات المطورين وخطوط أنابيب CI/CD (مثل GitHub Actions وGitLab CI) وفي أي مكان يتم فيه استنساخ الوحدات الفرعية Git من مستودعات غير موثوقة.
--recurse-submodules.تفاصيل CVSS لم يتم تسجيلها بالكامل بعد في NVD (CVSS 4.0 معلق)، ولكن بناءً على مقاييس CVSS 3.1 من التقرير، تتماشى مع خطورة حرجة (تقدير CVSS 8.8، كما لوحظ سابقًا في قوائم CVE الأوسع).
--recurse-submodules) من مستودعات غير موثوقة.تسلط هذه الثغرة الضوء على أهمية المعالجة الآمنة في أنظمة التحكم في الإصدارات، خاصة مع الوحدات الفرعية. إذا كنت تستخدم Git في بيئة إنتاج أو تطوير، فقم بإعطاء الأولوية للتحديث فورًا، نظرًا لحالة الاستغلال النشط.
.gitmodules إلى https://github.com/s41r4j/CVE-2025-48384-submodule.git، لكن PoC يعيد كتابته إلى نسخة محلية للاختبار بدون اتصال.قم بتشغيل:
bash scripts/poc.sh
ما يفعله:
$HOME/flag.txt داخل الحاوية.malicious-submodule-repo/ إلى /tmp في الحاوية.post-checkout إذا نجح الخلط في المسار./tmp/flag.txt الذي أنشأه hook.ملاحظات:
sub^M (CR) مخزن كـ gitlink؛ المسار المنظف sub يتم حله عبر رابط رمزي إلى .git/hooks، لذلك يتم وضع post-checkout المتعقب للوحدة الفرعية كـ hook فعلي ويتم تشغيله.bash scripts/update-gitlink.sh.