كشف مهندس أمني عن سلسلة من الثغرات الخطيرة في أدوات Git، مما عرض ملايين المطورين لخطر سرقة بيانات الاعتماد الخاصة بهم.
ريوتاكي (RyotaK)، مهندس أمني في شركة GMO Flatt Security Inc.، كان يجري اختبارات لاكتشاف الثغرات ضمن برنامج GitHub Bug Bounty في أكتوبر 2024، عندما اكتشف نقاط ضعف في كل من:
جميع هذه الثغرات كانت نتيجة عدم التحقق الصحيح من المدخلات ومعالجة غير آمنة للبروتوكولات النصية.
تدور هذه الثغرات حول Git Credential Protocol، والذي يعتمد على تنسيق مفتاح-قيمة مع فواصل الأسطر (\n
) لتبادل بيانات الاعتماد.
ورغم أن Git يمنع عادةً إدراج الأسطر الجديدة أو بايتات NULL للحماية من هجمات الحقن، إلا أن سوء التعامل مع محارف إنهاء الأسطر مثل \r
(عائد النقل) خلق ثغرات أمنية خطيرة.
تمكن المهاجمون من تجاوز منطق تحليل GitHub Desktop باستخدام عنوان URL خبيث يحتوي على %0d
(عائد النقل بتنسيق هكساديسيمال)، مما سمح لهم بسرقة بيانات اعتماد مستخدمي GitHub.com ونقلها إلى خوادم يتحكمون بها.
سمحت أخطاء تحليل النصوص في StreamReader داخل بيئة .NET بتضمين بيانات غير مشروعة، مما مكن المهاجمين من تهريب بيانات الاعتماد عبر الأسطر المختلفة.
سمحت ثغرات حقن الأسطر الجديدة داخل Git LFS للمهاجمين بتعديل ملفات الإعدادات وتجاوز آليات الحماية في Git، مما أدى إلى تسريب بيانات الاعتماد الحساسة.
أخطاء منطقية تسببت في تسريب رموز الوصول (Tokens) إلى خوادم المهاجمين عند استخدام متغيرات بيئة معينة مثل CODESPACES=true
و GITHUB_ENTERPRISE_TOKEN
.
لم يكن نظام إدارة بيانات الاعتماد في Codespaces يتحقق بشكل صحيح من نطاقات الاستضافة، مما أدى إلى إرسال الرموز الحساسة لجميع عمليات Git دون تمييز.
استجابةً لهذه التهديدات، أطلق Git إصلاحًا شاملًا (CVE-2024-52006) عن طريق إدخال إعداد جديد: credential.protectProtocol
، والذي يعمل على:
\r
).تسلط اكتشافات ريوتاكي الضوء على المخاطر المستمرة لاستخدام البروتوكولات النصية وأهمية التحقق الصارم من المدخلات. وكما صرح المهندس: “خطأ صغير في التصميم يمكن أن يؤدي إلى مشكلة أمنية كبيرة”.
لذلك، يُنصح المطورون ومسؤولو المنصات باتباع استراتيجيات دفاع متعددة الطبقات، مع اختبار صارم لتحليل المدخلات لضمان عدم وقوع ثغرات مشابهة في المستقبل.
credential.protectProtocol
في إعدادات Git الخاصة بك.تمثل هذه الثغرات تهديدًا كبيرًا لمجتمع المطورين، حيث قد تؤدي إلى سرقة بيانات الاعتماد والتسلل إلى مستودعات GitHub الخاصة. لذا، من الضروري التصرف بسرعة، وتطبيق التصحيحات الأمنية، واعتماد أفضل ممارسات الأمان لحماية بيانات الاعتماد والمشاريع البرمجية.