كشف مهندس أمني عن سلسلة من الثغرات الخطيرة في أدوات Git، مما عرض ملايين المطورين لخطر سرقة بيانات الاعتماد الخاصة بهم.

ريوتاكي (RyotaK)، مهندس أمني في شركة GMO Flatt Security Inc.، كان يجري اختبارات لاكتشاف الثغرات ضمن برنامج GitHub Bug Bounty في أكتوبر 2024، عندما اكتشف نقاط ضعف في كل من:

  • GitHub Desktop
  • Git Credential Manager
  • Git LFS
  • GitHub CLI
  • GitHub Codespaces

جميع هذه الثغرات كانت نتيجة عدم التحقق الصحيح من المدخلات ومعالجة غير آمنة للبروتوكولات النصية.

ثغرات بروتوكول بيانات اعتماد Git

تدور هذه الثغرات حول Git Credential Protocol، والذي يعتمد على تنسيق مفتاح-قيمة مع فواصل الأسطر (\n) لتبادل بيانات الاعتماد.

ورغم أن Git يمنع عادةً إدراج الأسطر الجديدة أو بايتات NULL للحماية من هجمات الحقن، إلا أن سوء التعامل مع محارف إنهاء الأسطر مثل \r (عائد النقل) خلق ثغرات أمنية خطيرة.

قائمة الثغرات المكتشفة

1- GitHub Desktop (CVE-2025-23040)

تمكن المهاجمون من تجاوز منطق تحليل GitHub Desktop باستخدام عنوان URL خبيث يحتوي على %0d (عائد النقل بتنسيق هكساديسيمال)، مما سمح لهم بسرقة بيانات اعتماد مستخدمي GitHub.com ونقلها إلى خوادم يتحكمون بها.

2- Git Credential Manager (CVE-2024-50338)

سمحت أخطاء تحليل النصوص في StreamReader داخل بيئة .NET بتضمين بيانات غير مشروعة، مما مكن المهاجمين من تهريب بيانات الاعتماد عبر الأسطر المختلفة.

3- Git LFS (CVE-2024-53263)

سمحت ثغرات حقن الأسطر الجديدة داخل Git LFS للمهاجمين بتعديل ملفات الإعدادات وتجاوز آليات الحماية في Git، مما أدى إلى تسريب بيانات الاعتماد الحساسة.

4- GitHub CLI (CVE-2024-53858)

أخطاء منطقية تسببت في تسريب رموز الوصول (Tokens) إلى خوادم المهاجمين عند استخدام متغيرات بيئة معينة مثل CODESPACES=true و GITHUB_ENTERPRISE_TOKEN.

5- GitHub Codespaces

لم يكن نظام إدارة بيانات الاعتماد في Codespaces يتحقق بشكل صحيح من نطاقات الاستضافة، مما أدى إلى إرسال الرموز الحساسة لجميع عمليات Git دون تمييز.

إجراءات الحماية والتصحيحات الأمنية

استجابةً لهذه التهديدات، أطلق Git إصلاحًا شاملًا (CVE-2024-52006) عن طريق إدخال إعداد جديد: credential.protectProtocol، والذي يعمل على:

  • حظر عناوين URL التي تحتوي على محارف عائد النقل (\r).
  • تفعيل هذا الخيار بشكل افتراضي لمنع الهجمات عبر Git و Git LFS.
  • تحديث GitHub Codespaces للتحقق من طلبات المضيف وتقييد مشاركة بيانات الاعتماد على GitHub.com فقط.

أهمية التحقق من المدخلات في أمن المعلومات

تسلط اكتشافات ريوتاكي الضوء على المخاطر المستمرة لاستخدام البروتوكولات النصية وأهمية التحقق الصارم من المدخلات. وكما صرح المهندس: “خطأ صغير في التصميم يمكن أن يؤدي إلى مشكلة أمنية كبيرة”.

لذلك، يُنصح المطورون ومسؤولو المنصات باتباع استراتيجيات دفاع متعددة الطبقات، مع اختبار صارم لتحليل المدخلات لضمان عدم وقوع ثغرات مشابهة في المستقبل.

تحسين أمان Git: ما الذي يجب أن تفعله؟

  1. قم بتحديث أدوات Git لديك إلى أحدث إصدار.
  2. تأكد من تفعيل إعداد credential.protectProtocol في إعدادات Git الخاصة بك.
  3. تجنب تخزين بيانات الاعتماد في ملفات إعدادات Git أو أي مكان يمكن الوصول إليه بسهولة.
  4. اختبر تطبيقاتك ضد سيناريوهات إدخال بيانات ضارة للتحقق من عدم وجود ثغرات.

خلاصة

تمثل هذه الثغرات تهديدًا كبيرًا لمجتمع المطورين، حيث قد تؤدي إلى سرقة بيانات الاعتماد والتسلل إلى مستودعات GitHub الخاصة. لذا، من الضروري التصرف بسرعة، وتطبيق التصحيحات الأمنية، واعتماد أفضل ممارسات الأمان لحماية بيانات الاعتماد والمشاريع البرمجية.

شارك

Leave a Comment