RubyGems.org saytida boshqa odamlarning paketlarini aldashga imkon beruvchi zaiflik

RubyGems.org paketlar omborida muhim zaiflik (CVE-2022-29176) aniqlandi, bu tegishli vakolatsiz, qonuniy paketni tortib olish va uning o'rniga yuklash orqali boshqa odamlarning ombordagi paketlarini almashtirish imkonini beradi. bir xil nom va versiya raqamiga ega bo'lgan boshqa fayl.

Zaiflikdan muvaffaqiyatli foydalanish uchun uchta shart bajarilishi kerak:

  • Hujum faqat nomida defis bo'lgan paketlarda amalga oshirilishi mumkin.
  • Buzg'unchi defis belgisidan oldin ismning bir qismi bo'lgan qimmatbaho toshlar paketini qo'yishi kerak. Misol uchun, agar hujum "rails-html-sanitizer" paketida bo'lsa, tajovuzkor o'zining "rails-html" paketini omborga joylashtirishi kerak.
  • Hujum qilinayotgan paket oxirgi 30 kun ichida yaratilgan yoki 100 kun davomida yangilanmagan boΚ»lishi kerak.

Zaiflik β€œyank” amal ishlovchisidagi xato tufayli yuzaga keladi, u ismning defisdan keyingi qismini platforma nomi sifatida izohlaydi, bu nom qismiga mos keladigan xorijiy paketlarni oβ€˜chirishni boshlash imkonini berdi. defis oldidan. Xususan, "yank" ishlov beruvchi kodida "find_by!(to'liq_ism: "#{rubygem.name}-#{slug}")" chaqiruvi paketlarni topish uchun ishlatilgan, "slug" parametri esa olib tashlanadigan versiyani aniqlash uchun paket egasi. "Rails-html" paketining egasi "1.2.3" versiyasi o'rniga "sanitizer-1.2.3" ni ko'rsatishi mumkin, bu esa boshqa birovning "rails-html-sanitizer-1.2.3" paketiga nisbatan qo'llanilishiga olib keladi. ".

Muammo xavfsizlik bo'yicha tadqiqotchi tomonidan ma'lum ochiq manbali loyihalarda xavfsizlik muammolarini topish uchun HackerOne mukofot dasturining bir qismi sifatida aniqlangan. Muammo 5-may kuni RubyGems.org saytida tuzatildi va ishlab chiquvchilarning soβ€˜zlariga koβ€˜ra, ular hali soβ€˜nggi 18 oy davomida jurnallardagi zaiflikdan foydalanish izlarini aniqlamagan. Shu bilan birga, hozirgacha faqat yuzaki tekshirish o'tkazilgan va kelgusida yanada chuqurroq tekshirish rejalashtirilgan.

Loyihalaringizni tekshirish uchun Gemfile.lock faylidagi operatsiyalar tarixini tahlil qilish tavsiya etiladi; zararli faoliyat nomi va versiyasi saqlanishi yoki platformaning o'zgarishi bilan o'zgarishlar mavjudligida ifodalanadi (masalan, gemname qachon -1.2.3 paketi gemname-1.2.3-java ga yangilandi). Uzluksiz integratsiya tizimlarida paketlarni yashirin almashtirishdan himoya qilish uchun vaqtinchalik yechim sifatida yoki loyihalarni nashr qilishda ishlab chiquvchilarga bog'liqliklarni tuzatish uchun Bundler-dan "-frozen" yoki "-deployment" opsiyalaridan foydalanish tavsiya etiladi.

Manba: opennet.ru

a Izoh qo'shish