ثغرات أمنية في Git عند استنساخ الوحدات الفرعية واستخدام git Shell

تم نشر الإصدارات التصحيحية لنظام التحكم بالمصدر الموزع Git 2.38.1 و2.30.6 و2.31.5 و2.32.4 و2.33.5 و2.34.5 و2.35.5 و2.36.3 و2.37.4، والتي تعمل على إصلاح ثغرتان أمنيتان تظهران عند استخدام أمر "git clone" في وضع "—recurse-submodules" مع مستودعات غير محددة وعند استخدام الوضع التفاعلي "git shell". يمكنك تتبع إصدار تحديثات الحزمة في التوزيعات على صفحات Debian وUbuntu وRHEL وSUSE/openSUSE وFedora وArch وFreeBSD.

  • CVE-2022-39253 - تسمح الثغرة الأمنية للمهاجم الذي يتحكم في محتويات المستودع المستنسخ بالوصول إلى البيانات السرية الموجودة على نظام المستخدم عن طريق وضع روابط رمزية للملفات محل الاهتمام في دليل $GIT_DIR/objects الخاص بالمستودع المستنسخ. تظهر المشكلة فقط عند الاستنساخ محليًا (في الوضع "--local"، المستخدم عندما تكون بيانات الهدف والمصدر للاستنساخ في نفس القسم) أو عند استنساخ مستودع ضار تم تعبئته كوحدة فرعية في مستودع آخر (على سبيل المثال، عند تضمين الوحدات الفرعية بشكل متكرر باستخدام الأمر "git clone" --recurse-submodules").

    تنجم الثغرة الأمنية عن حقيقة أنه في وضع الاستنساخ "--local"، يقوم git بنقل محتويات $GIT_DIR/objects إلى الدليل الهدف (إنشاء روابط ثابتة أو نسخ من الملفات)، مع إلغاء الإشارة إلى الروابط الرمزية (على سبيل المثال، ونتيجة لذلك، يتم نسخ الروابط غير الرمزية إلى الدليل الهدف، ولكن مباشرة إلى الملفات التي تشير إليها الروابط). لمنع الثغرة الأمنية، تحظر الإصدارات الجديدة من git استنساخ المستودعات في الوضع "--local" الذي يحتوي على روابط رمزية في دليل $GIT_DIR/objects. بالإضافة إلى ذلك، تم تغيير القيمة الافتراضية للمعلمة Protocol.file.allow إلى "user"، مما يجعل عمليات الاستنساخ باستخدام بروتوكول file:// غير آمنة.

  • CVE-2022-39260 - تجاوز عدد صحيح في الدالة Split_cmdline() المستخدمة في أمر "git Shell". يمكن استخدام المشكلة لمهاجمة المستخدمين الذين لديهم "git Shell" كصدفة تسجيل الدخول الخاصة بهم وتم تمكين الوضع التفاعلي (تم إنشاء ملف $HOME/git-shell-commands). يمكن أن يؤدي استغلال الثغرة الأمنية إلى تنفيذ تعليمات برمجية عشوائية على النظام عند إرسال أمر مصمم خصيصًا يزيد حجمه عن 2 جيجابايت.

المصدر: opennet.ru

إضافة تعليق