Kerentanan dalam pengurus pakej Kargo yang digunakan untuk projek Rust

Dalam pengurus pakej Kargo, digunakan untuk mengurus pakej dan membina projek dalam bahasa Rust, dua kelemahan telah dikenal pasti yang boleh dieksploitasi apabila memuat turun pakej yang direka khas dari repositori pihak ketiga (dinyatakan bahawa pengguna repositori crates.io rasmi tidak terjejas oleh masalah). Kerentanan pertama (CVE-2022-36113) membenarkan dua bait pertama mana-mana fail ditimpa selagi kebenaran semasa membenarkan. Kerentanan kedua (CVE-2022-36114) boleh digunakan untuk menghabiskan ruang cakera.

Kerentanan akan diperbaiki dalam keluaran Rust 1.64, yang dijadualkan pada 22 September. Kerentanan diberikan tahap keterukan yang rendah, memandangkan bahaya yang sama boleh berlaku apabila menggunakan pakej yang tidak disahkan daripada repositori pihak ketiga menggunakan keupayaan standard untuk melancarkan pengendali tersuai daripada skrip pemasangan atau makro prosedur yang dibekalkan dalam pakej. Pada masa yang sama, masalah yang disebutkan di atas berbeza kerana ia dieksploitasi pada peringkat membuka pakej selepas memuat turun (tanpa pemasangan).

Khususnya, selepas memuat turun pakej, kargo membongkar kandungannya ke dalam direktori ~/.cargo dan menyimpan tanda berjaya membongkar dalam fail .cargo-ok. Intipati kelemahan pertama ialah pencipta pakej boleh meletakkan pautan simbolik di dalamnya dengan nama .cargo-ok, yang akan membawa kepada menulis teks "ok" pada fail yang ditunjukkan oleh pautan.

Kerentanan kedua disebabkan oleh kekurangan had pada saiz data yang diekstrak daripada arkib, yang boleh digunakan untuk mencipta "bom zip" (arkib boleh mengandungi data yang membolehkan mencapai nisbah mampatan maksimum untuk format zip - kira-kira 28 juta kali, dalam kes ini, sebagai contoh, fail zip 10 MB yang disediakan khas akan menghasilkan penyahmampatan lebih kurang 281 TB data).

Sumber: opennet.ru

Tambah komen