Kerentanan pada manajer paket Cargo yang digunakan untuk proyek Rust

Dua kerentanan telah diidentifikasi di manajer paket Cargo, yang digunakan untuk mengelola paket dan membangun proyek dalam bahasa Rust, yang dapat dieksploitasi saat mengunduh paket yang dirancang khusus dari repositori pihak ketiga (diduga merupakan pengguna peti resmi. repositori io tidak terpengaruh oleh masalah ini). Kerentanan pertama (CVE-2022-36113) memungkinkan penimpaan dua byte pertama dalam file apa pun, selama izin saat ini mengizinkan. Kerentanan kedua (CVE-2022-36114) dapat dieksploitasi untuk menghabiskan ruang disk kosong.

Kerentanan akan diperbaiki dalam rilis Rust 1.64, yang dijadwalkan pada 22 September. Kerentanan diberi tingkat keparahan yang rendah, karena kerusakan serupa saat menggunakan paket yang belum terverifikasi dari repositori pihak ketiga dapat disebabkan oleh kemampuan standar untuk menjalankan penangannya dari skrip build atau makro prosedural yang disertakan dalam paket. Pada saat yang sama, masalah di atas berbeda karena pengoperasiannya dilakukan pada tahap pembukaan paket setelah pemuatan (tanpa perakitan).

Khususnya, setelah memuat sebuah paket, kargo membongkar isinya ke dalam direktori ~/.cargo dan menyimpan tanda keberhasilan pembongkaran ke file .cargo-ok. Inti dari kerentanan pertama adalah pembuat paket dapat menempatkan tautan simbolik di dalamnya dengan nama .cargo-ok, yang akan mengarah pada penulisan teks β€œok” ke file yang ditunjuk oleh tautan tersebut.

Kerentanan kedua disebabkan oleh tidak adanya batasan ukuran data yang diekstraksi dari arsip, yang dapat digunakan untuk membuat "bom zip" (data dapat ditempatkan di arsip untuk mencapai rasio kompresi maksimum untuk format zip - sekitar 28 juta kali, dalam hal ini, misalnya, file zip 10 MB yang disiapkan khusus akan membongkar sekitar 281 TB data).

Sumber: opennet.ru

Tambah komentar