CVE-2026-100689 in GitPythonالمعلومات

الملخص

بحسب VulDB • 26/09/2026

لا تقوم مكتبة GitPython قبل الإصدار 3.1.62 بالتحقق من صحة حقل `path` المقروء من ملف `.gitmodules` غير الموثوق عند تحديث الوحدات الفرعية (submodules). وعلى الرغم من أن إصلاحًا سابقًا (GHSA-hmq2-w58f-27jc) أضاف الدالة `Submodule._validated_name()` لتقييد حقل `name`، وتُطبق آلية الحماية الخاصة بـ GitPython والمعروفة باسم `Submodule._to_relative_path()` في دالتي `add()` و`move()`، إلا أن دالة `Submodule.update()` تستنتج موقع الفحص المطلق (absolute checkout location) من القيمة الخام لحقل `path` دون تطبيق تلك الآمية الوقائية. وبالتالي، يمكن لمدخل `.gitmodules` الذي يحتوي على مكونات لتجاوز الدلائل (مثل: path = ../../../tmp/escaped) أن يتسبب في إنشاء دلائل عبر استخدام `os.makedirs()` خارج شجرة العمل الخاصة بالمستودع (repository working tree)، ويتم ملؤها من عنوان URL للوحدة الفرعية أثناء مسار الاستنساخ، وإزالتها باستخدام `shutil.rmtree()` عند تفعيل خيار الإزالة القسرية (`force_remove`). يتطلب استغلال هذه الثغرة تدفق تطبيق يقوم بتحديث الوحدات الفرعية في التزام غير رئيسي (non-HEAD commit) (مثل واجهة برمجة التطبيقات الخاصة بالتزامات تاريخية)؛ أما التدفق الشائع المتمثل في الاستنساخ ثم التحديث، الذي يعيد اشتقاق المسار من بحث شجري قياسي (canonical tree lookup)، فهو غير متأثر. تم إصلاح هذه المشكلة في GitPython الإصدار 3.1.62.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

VulnCheck

حجز

26/09/2026

إفشاء

26/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-410666

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!