اكتشفوا ثغرة أمنية في RubyGems.org سمحت باستبدال الحزم

مؤخرا اندلعت الأخبار ذلك تم تحديد ثغرة خطيرة في مستودع الحزم rubygems.org (تم بالفعل فهرسة الثغرة الأمنية ضمن CVE-2022-29176) ، والتي سماح بدون إذن مناسب ، استبدال حزم الآخرين في المستودع عن طريق سحب حزمة شرعية وتحميل ملف آخر يحمل نفس الاسم ورقم الإصدار في مكانه.

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

على وجه الخصوص ، في رمز تحكم العملية "نثر" ، المكالمة 'find_by! (full_name: "# {rubygem.name} - # {slug}")' للبحث عن الحزم ، بينما تم تمرير المعلمة "slug" إلى مالك الحزمة لتحديد الإصدار المراد إزالته.

يمكن لمالك الحزمة "rails-html" تحديد "sanitizer-1.2.3" بدلاً من الإصدار "1.2.3" ، مما قد يتسبب في تطبيق العملية على "rails-html-sanitizer-1.2.3" طرد ″ من شخص آخر. »

تم نشر تقرير استشاري أمني لـ Rubygems.org أمس.

يتعلق التحذير بوجود خلل سمح لمستخدم ضار بالتعدين على جواهر معينة وتحميل ملفات مختلفة بنفس الاسم ورقم الإصدار ونظام أساسي مختلف.

دعنا نلقي نظرة أعمق لمعرفة الخطأ الذي حدث أثناء عملية الاستخراج. كذريعة ، دعنا نتخيل سيناريو حيث نقوم بإنشاء جوهرة تسمى "rails-html" بقصد الحصول على وصول غير مصرح به إلى جوهرة "rails-html-sanitizer" المستخدمة على نطاق واسع.

يذكر أن يجب استيفاء ثلاثة شروط، من أجل استغلال هذه الثغرة الأمنية بنجاح:

  • لا يمكن تنفيذ الهجوم إلا على الحزم التي تحتوي على حرف الواصلة في أسمائها.
  • يجب أن يكون المهاجم قادرًا على وضع حزمة جوهرة مع جزء من الاسم يصل إلى حرف الواصلة. على سبيل المثال ، إذا كان الهجوم ضد حزمة "rails-html-sanitizer" ، فيجب على المهاجم وضع حزمة "rails-html" الخاصة به في المستودع.
  • يجب أن تكون الحزمة التي تعرضت للهجوم قد تم إنشاؤها في آخر 30 يومًا أو لم يتم تحديثها لمدة 100 يوم.

المشكلة تم التعرف عليه من قبل باحث أمني كجزء من برنامج المكافأة HackerOne للعثور على مشكلات الأمان في مشاريع مفتوحة المصدر معروفة.

المشكلة تم إصلاحه في RubyGems.org في 5 مايو ووفقًا للمطورين ، لم تحدد بعد آثار الاستغلال من الثغرات الأمنية في السجلات لآخر 18 شهرًا. في الوقت نفسه ، تم إجراء تدقيق سطحي فقط حتى الآن ، ومن المقرر إجراء تدقيق أكثر تعمقًا في المستقبل.

في الوقت الحاضر ، نعتقد أنه لم يتم استغلال هذه الثغرة الأمنية.

يرسل RubyGems.org بريدًا إلكترونيًا إلى جميع مالكي الأحجار الكريمة عند إصدار نسخة الأحجار الكريمة أو إزالتها. لم نتلق أي رسائل بريد إلكتروني للدعم من مالكي الأحجار الكريمة تشير إلى أنه تم استخراج الأحجار الكريمة الخاصة بهم دون إذن.

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

للتحقق من مشاريعك ، يوصى بتحليل محفوظات العمليات في ملف Gemfile.lock يتم التعبير عن النشاط الضار في وجود تغييرات بنفس الاسم والإصدار ، أو تغيير النظام الأساسي (على سبيل المثال ، عند حزمة xxx-1.2.3 .1.2.3 تم تحديثه إلى xxx-XNUMX-xxx).

كحل ضد انتحال الحزم المخفية في أنظمة التكامل المستمر أو عند نشر المشاريع ، يوصى للمطورين باستخدام Bundler مع الخيارين "- المجمدة" أو "- النشر" لتأكيد التبعيات.

وأخيرا، إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني.

*

*

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