تم إصلاح تحديث Git مع 8 نقاط ضعف

نشرت الإصدارات التصحيحية لنظام التحكم بالمصدر الموزع Git 2.24.1، 2.23.1، 2.22.2، 2.21.1، 2.20.2، 2.19.3، 2.18.2، 2.17.3، 2.16.6، 2.15.4 و2.14.62.24.1 XNUMX، والتي أصلحت الثغرات الأمنية التي سمحت للمهاجم بإعادة كتابة المسارات التعسفية في نظام الملفات، أو تنظيم تنفيذ التعليمات البرمجية عن بعد، أو الكتابة فوق الملفات في الدليل ".git/". معظم المشاكل التي تم تحديدها من قبل الموظفين
مركز الاستجابة الأمنية لـ Microsoft، خمس من الثغرات الأمنية الثمانية مخصصة لنظام Windows الأساسي.

  • CVE-2019-1348 - أمر الدفق "علامات التصدير المميزة = المسار"يسمح اكتب تسميات إلى أدلة عشوائية، والتي يمكن استخدامها للكتابة فوق المسارات التعسفية في نظام الملفات عند إجراء عملية "git fast-import" مع بيانات الإدخال غير المحددة.
  • CVE-2019-1350 - الهروب غير الصحيح من وسائط سطر الأوامر يمكن أن يؤدي للتنفيذ عن بعد لتعليمات برمجية للمهاجم أثناء الاستنساخ العودي باستخدام عنوان URL ssh://. على وجه الخصوص، تمت معالجة وسيطات الهروب التي تنتهي بشرطة مائلة عكسية (على سبيل المثال، "اختبار \") بشكل غير صحيح. في هذه الحالة، عند تأطير وسيطة بعلامات اقتباس مزدوجة، تم تجاوز الاقتباس الأخير، مما جعل من الممكن تنظيم استبدال خياراتك في سطر الأوامر.
  • CVE-2019-1349 - عند استنساخ الوحدات الفرعية بشكل متكرر ("استنساخ - الوحدات الفرعية المتكررة") في بيئة Windows في ظل ظروف معينة يمكن ان تكون تشغيل استخدام نفس دليل git مرتين (يتم التعرف على .git وgit~1 وgit~2 وgit~N كدليل واحد في NTFS، ولكن تم اختبار هذا الموقف فقط لـ git~1)، والذي يمكن استخدامه للتنظيم الكتابة إلى الدليل ".git". لتنظيم تنفيذ التعليمات البرمجية الخاصة به، يمكن للمهاجم، على سبيل المثال، استبدال البرنامج النصي الخاص به من خلال معالج ما بعد الدفع في ملف .git/config.
  • CVE-2019-1351 - تم تصميم معالج أسماء محركات الأقراص في مسارات Windows عند ترجمة مسارات مثل "C:\" فقط لاستبدال المعرفات اللاتينية ذات الحرف الواحد، ولكنه لم يأخذ في الاعتبار إمكانية إنشاء محركات أقراص افتراضية معينة عبر "الحرف الفرعي: المسار" . لم يتم التعامل مع هذه المسارات على أنها مطلقة، بل كمسارات نسبية، مما جعل من الممكن، عند استنساخ مستودع ضار، تنظيم سجل في دليل عشوائي خارج شجرة دليل العمل (على سبيل المثال، عند استخدام أرقام أو أحرف Unicode في القرص الاسم - "1:\what\the\ hex.txt" أو "ä:\tschibät.sch").
  • CVE-2019-1352 — عند العمل على نظام التشغيل Windows، استخدام تدفقات البيانات البديلة في NTFS، التي تم إنشاؤها عن طريق إضافة السمة “:stream-name:stream-type” إلى اسم الملف، مسموح الكتابة فوق الملفات الموجودة في الدليل ".git/" عند استنساخ مستودع ضار. على سبيل المثال، تمت معاملة الاسم ".git::$INDEX_ALLOCATION" في NTFS كارتباط صالح للدليل ".git".
  • CVE-2019-1353 - عند استخدام Git في بيئة WSL (نظام Windows الفرعي لنظام التشغيل Linux) عند الوصول إلى دليل العمل غير مستعمل الحماية ضد التلاعب بالأسماء في NTFS (كانت الهجمات من خلال ترجمة اسم FAT ممكنة، على سبيل المثال، يمكن الوصول إلى ".git" من خلال الدليل "git~1").
  • CVE-2019-1354 -
    فرصة يكتب إلى الدليل ".git/" على نظام التشغيل Windows عند استنساخ المستودعات الضارة التي تحتوي على ملفات ذات شرطة مائلة عكسية في الاسم (على سبيل المثال، "a\b")، وهو أمر مقبول على أنظمة Unix/Linux، ولكنه مقبول كجزء من المسار على ويندوز.

  • CVE-2019-1387 - يمكن استخدام فحص غير كافٍ لأسماء الوحدات الفرعية لتنظيم هجمات مستهدفة، والتي، إذا تم استنساخها بشكل متكرر، من المحتمل أن تكون يمكن أن يؤدي لتنفيذ التعليمات البرمجية للمهاجم. لم يمنع Git إنشاء دليل وحدة فرعية داخل دليل وحدة فرعية أخرى، الأمر الذي سيؤدي في معظم الحالات فقط إلى الارتباك، لكنه لم يمنع من الكتابة فوق محتويات وحدة نمطية أخرى أثناء عملية الاستنساخ العودية (على سبيل المثال، أدلة الوحدة الفرعية يتم وضع "hippo" و"hippo/hooks" كـ ".git/modules/hippo/" و".git/modules/hippo/hooks/"، ويمكن استخدام دليل الخطافات في hippo بشكل منفصل لاستضافة الخطافات المشغلة.

يُنصح مستخدمو Windows بتحديث إصدار Git الخاص بهم على الفور، والامتناع عن استنساخ المستودعات التي لم يتم التحقق منها حتى التحديث. إذا لم يكن من الممكن حتى الآن تحديث إصدار Git بشكل عاجل، فمن أجل تقليل مخاطر الهجوم، يوصى بعدم تشغيل "git clone —recurse-submodules" و"git submodule update" مع مستودعات غير محددة، وعدم استخدام "git "الاستيراد السريع" مع تدفقات الإدخال غير المحددة، وعدم استنساخ المستودعات إلى الأقسام المستندة إلى NTFS.

لمزيد من الأمان، تحظر الإصدارات الجديدة أيضًا استخدام البنيات في .gitmodules من النموذج "submodule.{name}.update=!command". بالنسبة للتوزيعات، يمكنك تتبع إصدار تحديثات الحزمة على الصفحات ديبيان,أوبونتو, RHEL, SUSE / openSUSE, فيدورا, قوس, ALT, فري.

المصدر: opennet.ru

إضافة تعليق