تكشف Google عن ثغرة أمنية على GitHub

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

أصبح هذا الخلل أحد نقاط الضعف القليلة التي لم يتم إصلاحها بشكل صحيح قبل انتهاء صلاحية الإطار الزمني القياسي البالغ 90 يومًا الممنوح من Google Project Zero.

بحسب فيليكس فيلهلم (من اكتشفها) ، عضو فريق Project Zero ، فإن الخلل يؤثر على وظيفة إجراءات GitHub ، وهي أداة لأتمتة عمل المطورين. هذا لأن أوامر سير العمل "عرضة لهجمات الحقن":

"الإجراءات يدعم Github ميزة تسمى أوامر سير العمل كقناة اتصال بين وسيط الإجراء والإجراء المنفذ. يتم تنفيذ أوامر سير العمل في / src / Runner.Worker / ActionCommandManager.cs وهي تعمل عن طريق تحليل STDOUT لجميع الإجراءات التي يتم تنفيذها من خلال البحث عن واحدة من علامتي الأمر.

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

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

في وقت لاحق، قدم بعض الأمثلة عن كيفية استغلال الخطأ واقترحوا أيضًا حلاً:

"لست متأكدًا حقًا ما هي أفضل طريقة لإصلاحها. أعتقد أن الطريقة التي يتم بها تنفيذ أوامر سير العمل غير آمنة بشكل أساسي. من المحتمل أن يعمل إهلاك صيغة الأمر v1 وتقوية set-env بقائمة السماح ضد متجهات RCE المباشرة.

"ومع ذلك ، فحتى القدرة على تجاوز متغيرات البيئة" العادية "المستخدمة في الخطوات اللاحقة ربما تكون كافية لاستغلال الإجراءات الأكثر تعقيدًا. كما أنني لم أحلل التأثير الأمني ​​لعناصر التحكم الأخرى في مساحة العمل.

من ناحية أخرى، أذكر أنه حل جيد طويل الأمد سيكون نقل أوامر سير العمل إلى قناة منفصلة (على سبيل المثال ، واصف ملف جديد) لتجنب التحليل بواسطة STDOUT ، ولكن هذا سيؤدي إلى كسر الكثير من كود الإجراء الحالي.

أما بالنسبة إلى GitHub ، فقد نشر مطوروها تقريرًا استشاريًا في 1 أكتوبر وألغوا الأوامر الضعيفة ، لكنهم جادلوا بأن ما وجده فيلهلم كان في الواقع "ثغرة أمنية متوسطة". قام GitHub بتعيين معرف الخطأ CVE-2020-15228:

"تم التعرف على ثغرة أمنية معتدلة في وقت تشغيل إجراءات GitHub والتي قد تسمح بإدخال المسارات ومتغيرات البيئة في مهام سير العمل التي تسجل البيانات غير الموثوق بها إلى STDOUT. يمكن أن يؤدي هذا إلى إدخال أو تعديل متغيرات البيئة دون نية مؤلف سير العمل.

لمساعدتنا في حل هذه المشكلة والسماح لك بتعيين متغيرات البيئة ديناميكيًا ، قدمنا ​​مجموعة جديدة من الملفات للتعامل مع تحديثات البيئة والمسار في مهام سير العمل.

"إذا كنت تستخدم وسطاء مستضافين ذاتيًا ، فتأكد من تحديثهم إلى الإصدار 2.273.1 أو أعلى.

وفقًا لـ Wilhelm ، في 12 أكتوبر ، اتصل Project Zero بـ GitHub وعرض عليهم بشكل استباقي نافذة لمدة 14 يومًا إذا أراد GitHub مزيدًا من الوقت لتعطيل الأوامر الضعيفة. بالطبع ، تم قبول العرض وكان GitHub يأمل في تعطيل الأوامر الضعيفة بعد 19 أكتوبر. ثم حدد Project Zero تاريخ الكشف الجديد ليوم 2 نوفمبر.

مصدر: https://bugs.chromium.org


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.