CVE-2024-45405 in gitoxideالمعلومات

الملخص

بحسب VulDB • 27/06/2026

يُعد `gix-path` مكوناً (crate) ضمن مشروع `gitoxide` (وهو تنفيذ لـ `git` مكتوب بلغة Rust)، ويتعامل مع المسارات وتحويلاتها. قبل الإصدار 0.10.11، كان `gix-path` يستدعي تشغيل `git` للعثور على مسار ملف تكوين مرتبط بتثبيت `git`، لكنه لم يكن يحلّ بشكل صحيح المسارات التي تحتوي على أحرف غير عادية أو غير ASCII، مما سمح في حالات نادرة بهجوم محلي بحقن التكوين يؤدي إلى تنفيذ الكود. يحتوي الإصدار 0.10.11 على تصحيح لهذه المشكلة.

في `gix_path::env`، يستدعي التنفيذ الأساسي للدالّتين `installation_config` و`installation_config_prefix` الأمر `git config -l --show-origin` للعثور على مسار ملف يُعامل كملف تابع لتثبيت `git`. لا تمرّر الإصدارات المتأثرة من `gix-path` الوسيطة `-z`/`--null` لإجبار `git` على الإبلاغ عن المسارات حرفياً. وبدلاً من ذلك، لمعالجة الحالة العرضية التي يخرج فيها `git` مساراً محاطاً بعلامات اقتباس، يحاول تحليل المسار عن طريق إزالة علامات الاقتباس هذه. تكمن المشكلة في أنه عندما يكون المسار محاطاً بعلامات اقتباس، قد يتغير بشكل جوهري إلى ما هو أبعد من مجرد إضافة علامات الاقتباس. وإذا لم يتم عكس هذه التغييرات، فقد تؤدي إلى مسار صالح آخر غير مكافئ للمسار الأصلي.

على نظام مستخدم واحد، لا يمكن استغلال هذا الخطأ إلا إذا كانت المتغيرات البيئية `GIT_CONFIG_SYSTEM` و`GIT_CONFIG_GLOBAL` قد تم تعيينها لقيم غير عادية أو إذا كان Git مثبتاً بطريقة غير معتادة. ولا يُتوقع حدوث مثل هذه السيناريوهات. كما أن الاستغلال غير محتمل حتى على الأنظمة متعددة المستخدمين، رغم أنه معقول في بعض التكوينات أو حالات الاستخدام النادرة بشكل عام. بشكل عام، من المرجح أكثر أن ينجح الاستغلال إذا كان من المتوقع أن يقوم المستخدمون بتثبيت `git` بأنفسهم، ومن المرجح أن يفعلوا ذلك في مواقع متوقعة؛ والمواقع التي يتم تثبيت `git` فيها، سواء بسبب وجود أسماء المستخدمين في مساراتها أو لغيره من الأسباب، تحتوي على أحرف يُقتبس منها `git` بشكل افتراضي ضمن المسارات، مثل الحروف غير الإنجليزية والحروف ذات التشكيل (accents)؛ أو إذا تم تحديد ملف تكوين للنطاق `system` باستخدام المتغير البيئي `GIT_CONFIG_SYSTEM`، وكان مساره في موقع غير عادي أو يحتوي على مكونات بأسماء غريبة؛ أو إذا كان ملف التكوين الخاص بالنطاق `system` مفقوداً، فارغاً، أو مُعطّلاً بوسائل أخرى بخلاف استخدام `GIT_CONFIG_NOSYSTEM`. حالياً، يمكن لـ `gix-path` أن يعامل ملف تكوين للنطاق `global` على أنه تابع للتثبيت في حال عدم توفر أي ملف تكوين لنطاق أعلى. وهذا يزيد من احتمالية الاستغلال حتى على الأنظمة التي يتم فيها تثبيت `git` عالمياً بطريقة عادية. ومع ذلك، يُتوقع أن يكون الاستغلال صعباً جداً تحت أي تركيبة من تلك العوامل.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

GitHub M

حجز

28/08/2024

إفشاء

06/09/2024

الاعتدال

تمت الموافقة

إدخال

VDB-276723

EPSS

0.00257

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!