Kerentanan di e2fsck saat memproses direktori yang dirancang khusus

Dalam utilitas e2fsck yang disertakan sebagai bagian dari paket e2fsprogs.dll, diidentifikasi kerentanan (CVE-2019-5188), yang memungkinkan Anda mengeksekusi kode penyerang saat memeriksa sistem file yang berisi direktori yang dirancang khusus. Kerentanan dikonfirmasi pada rilis 1.43.3 hingga 1.45.4. Kerentanan diperbaiki dalam pembaruan e2fsck 1.45.5. Dalam kit distribusi, masalahnya masih belum teratasi (Debian, Arch Linux, SUSE/bukaSUSE, Ubuntu, RHEL).

Kerentanan ini disebabkan oleh kesalahan fungsi mutate_name() di file rehash.c, yang digunakan saat membangun kembali tabel hash yang terkait dengan direktori, memastikan bahwa semua file di direktori cocok dengan direktori. Korupsi struktur hash_entry yang terkait dengan direktori dapat mengakibatkan penyerang menulis data ke area di luar buffer yang dialokasikan. Jika beberapa file dengan nama yang sama diidentifikasi dalam tabel hash sebagai ditautkan ke direktori, utilitas e2fsck mengganti nama file duplikat dengan menambahkan ~0, ~1, dll. ke namanya. Untuk menyimpan sementara nama baru selama penggantian nama tersebut, buffer berukuran 256 byte dialokasikan pada tumpukan.

Ukuran data yang akan disalin ditentukan oleh ekspresi "entry->name_len & 0xff", tetapi nilai entry->name_len dimuat dari struktur pada disk dan bukan dihitung dari ukuran sebenarnya dari nama tersebut. Jika ukurannya nol, maka indeks array mengambil nilai -1 dan kondisi dibuat untuk integer overflow melalui batas bawah buffer (integer underflow) dan menimpa data lain di stack dengan nilai β€œ~0”. Untuk sistem 64-bit, eksploitasi kerentanan dinilai tidak mungkin terjadi dan tidak memerlukan batasan ukuran tumpukan (ulimit -s unlimited). Untuk sistem 32-bit, eksploitasi dianggap mungkin dilakukan, tetapi hasilnya sangat bergantung pada bagaimana file yang dapat dieksekusi dikompilasi oleh kompiler.

Untuk melakukan serangan, penyerang perlu merusak data dengan cara tertentu di partisi dengan sistem file ext2, ext3 atau ext4. Karena operasi ini memerlukan hak pengguna super, kerentanan menimbulkan ancaman ketika utilitas e2fsck memindai drive eksternal atau gambar FS yang diterima secara eksternal.

Sumber: opennet.ru

Tambah komentar