Kerentanan di zlib yang terjadi saat mengompresi data yang dirancang khusus

Kerentanan (CVE-2018-25032) telah diidentifikasi di perpustakaan zlib, menyebabkan buffer overflow ketika mencoba mengompresi rangkaian karakter yang disiapkan khusus dalam data masuk. Dalam bentuknya yang sekarang, para peneliti telah menunjukkan kemampuan untuk menyebabkan suatu proses berakhir secara tidak normal. Belum diteliti apakah masalah ini dapat menimbulkan konsekuensi yang lebih serius.

Kerentanan muncul mulai dari versi zlib 1.2.2.2 dan juga mempengaruhi rilis zlib 1.2.11 saat ini. Patut dicatat bahwa tambalan untuk memperbaiki kerentanan telah diusulkan pada tahun 2018, tetapi pengembang tidak memperhatikannya dan tidak merilis rilis perbaikan (perpustakaan zlib terakhir diperbarui pada tahun 2017). Perbaikannya juga belum disertakan dalam paket yang ditawarkan distro. Anda dapat melacak publikasi perbaikan berdasarkan distribusi di halaman ini: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Pustaka zlib-ng tidak terpengaruh oleh masalah ini.

Kerentanan terjadi jika aliran masukan berisi sejumlah besar kecocokan yang akan dikemas, yang pengemasannya diterapkan berdasarkan kode Huffman tetap. Dalam keadaan tertentu, isi buffer perantara tempat hasil kompresi ditempatkan mungkin tumpang tindih dengan memori tempat tabel frekuensi simbol disimpan. Akibatnya, data terkompresi yang salah dihasilkan dan crash karena penulisan di luar batas buffer.

Kerentanan hanya dapat dieksploitasi menggunakan strategi kompresi berdasarkan kode Huffman yang telah diperbaiki. Strategi serupa dipilih ketika opsi Z_FIXED diaktifkan secara eksplisit dalam kode (contoh urutan yang menyebabkan crash saat menggunakan opsi Z_FIXED). Dilihat dari kodenya, strategi Z_FIXED juga dapat dipilih secara otomatis jika pohon optimal dan statis yang dihitung untuk data memiliki ukuran yang sama.

Belum jelas apakah kondisi untuk mengeksploitasi kerentanan dapat dipilih menggunakan strategi kompresi Z_DEFAULT_STRATEGY default. Jika tidak, maka kerentanan akan terbatas pada sistem spesifik tertentu yang secara eksplisit menggunakan opsi Z_FIXED. Jika ya, maka kerusakan dari kerentanan ini bisa sangat signifikan, karena perpustakaan zlib adalah standar de facto dan digunakan di banyak proyek populer, termasuk kernel Linux, OpenSSH, OpenSSL, Apache httpd, libpng, FFmpeg, rsync, dpkg , rpm, Git, PostgreSQL, MySQL, dll.

Sumber: opennet.ru

Tambah komentar