Ular RubyGems.org da paketlarni almashtirish imkonini beruvchi zaiflikni aniqladilar

Yaqinda bu xabar tarqaldi Kritik zaiflik aniqlandi paketlar ombori rubygems.org (zaiflik allaqachon CVE-2022-29176 ostida kataloglangan), bu ruxsat beradi tegishli ruxsatisiz, boshqa odamlarning paketlarini almashtiring qonuniy paketni olib tashlash va uning o'rniga bir xil nom va versiya raqami bilan boshqa faylni yuklash orqali omborda.

Ta'kidlanganidek zaiflik "yank" harakat ishlovchisidagi xato tufayli yuzaga keladi, bu ismning chiziqcha belgisigacha bo'lgan qismiga mos keladigan tashqi paketlarni olib tashlashni boshlash imkonini yaratgan platforma nomi sifatida nomning defisdan keyingi qismini ko'rib chiqadi.

Xususan operatsiyani boshqaruvchi kodida "yank", qo'ng'iroq 'find_by! (to'liq_ism: "#{rubygem.name}-#{slug}")' paketlarni qidirish uchun foydalanilgan, "slug" parametri esa olib tashlanadigan versiyani aniqlash uchun paket egasiga uzatilgan.

"Rails-html" paketining egasi "1.2.3" versiyasi o'rniga "sanitizer-1.2.3" ni ko'rsatishi mumkin edi, bu esa operatsiyani "rails-html-sanitizer-1.2.3" ga qo'llashga olib keladi. paket ″ boshqa birovdan. »

Rubygems.org uchun xavfsizlik bo'yicha maslahat kecha chop etildi.

Maslahat zararli foydalanuvchiga ma'lum qimmatbaho toshlarni qazib olish va bir xil nom, versiya raqami va turli platformalar bilan turli xil fayllarni yuklash imkonini beradigan xato bilan bog'liq.

Keling, qazib olish jarayonidan o'tayotganda nima noto'g'ri bo'lganini ko'rish uchun chuqurroq ko'rib chiqaylik. Bahona sifatida biz keng tarqalgan "rails-html-sanitizer" marvaridiga ruxsatsiz kirishni qo'lga kiritish maqsadida "rails-html" deb nomlangan marvarid yaratadigan stsenariyni tasavvur qilaylik.

Ta'kidlanganidek uchta shart bajarilishi kerak, ushbu zaiflikdan muvaffaqiyatli foydalanish uchun:

  • Hujum faqat nomida defis belgisi bo'lgan paketlarda amalga oshirilishi mumkin.
  • Tajovuzkor ismning bir qismi bilan defis belgisigacha bo'lgan qimmatbaho toshlar to'plamini joylashtirishi kerak. Misol uchun, agar hujum "rails-html-sanitizer" paketiga qarshi bo'lsa, tajovuzkor o'zining "rails-html" paketini omborga qo'yishi kerak.
  • Hujum qilingan paket oxirgi 30 kun ichida yaratilgan yoki 100 kun davomida yangilanmagan bo'lishi kerak.

Muammo xavfsizlik tadqiqotchisi tomonidan aniqlangan ma'lum ochiq manba loyihalarida xavfsizlik muammolarini topish uchun HackerOne mukofot dasturining bir qismi sifatida.

Muammo 5-may kuni RubyGems.org saytida oʻrnatildi va ishlab chiquvchilarga ko'ra, hali ekspluatatsiya izlarini aniqlamagan oxirgi 18 oy davomida jurnallardagi zaiflik. Shu bilan birga, hozirgacha faqat yuzaki tekshirish o‘tkazilgan, kelgusida yanada chuqurroq tekshiruv o‘tkazish rejalashtirilgan.

Hozirgi vaqtda biz ushbu zaiflikdan foydalanilmaganiga ishonamiz.

RubyGems.org qimmatbaho toshlar versiyasi chiqarilganda yoki o'chirilganda barcha qimmatbaho tosh egalariga elektron pochta xabarini yuboradi. Biz qimmatbaho toshlar egalaridan ruxsatsiz qazib olinganligi haqida hech qanday yordam xatlarini olmadik.

Oxirgi 18 oy davomida qimmatbaho toshlar o'zgarishi auditi ushbu zaiflikdan zararli foydalanish misollarini topmadi. Ushbu ekspluatatsiyadan mumkin bo'lgan har qanday foydalanish bo'yicha keyingi tekshiruvlar RubyGems tarixida ruxsatsiz marvaridni egallash uchun foydalanilgani aniqlanmadi. Bu hech qachon sodir bo'lmaganiga kafolat bera olmaymiz, lekin bu ehtimolga yaqin emas.

Loyihalaringizni tekshirish uchun Gemfile.lock faylidagi operatsiyalar tarixini tahlil qilish tavsiya etiladi Zararli faoliyat bir xil nom va versiyadagi o'zgarishlar yoki platforma o'zgarishi (masalan, xxx-1.2.3 to'plami bo'lganda) namoyon bo'ladi. 1.2.3 xxx-XNUMX-xxx ga yangilangan).

Yechim sifatida uzluksiz integratsiya tizimlarida yoki loyihalarni nashr qilishda yashirin paketlarni soxtalashtirishga qarshi, Ishlab chiquvchilarga Bundlerdan foydalanish tavsiya etiladi “–muzlatilgan” yoki “–joylashtirish” opsiyalari bilan bog'liqlikni tasdiqlash uchun.

Nihoyat, agar siz bu haqda ko'proq bilishni xohlasangiz, tafsilotlarni quyidagi havola.


Maqolaning mazmuni bizning printsiplarimizga rioya qiladi muharrirlik etikasi. Xato haqida xabar berish uchun bosing bu erda.

Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi.

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.