Kerentanan root yang dieksploitasi dari jarak jauh dalam utilitas ping FreeBSD

Di FreeBSD, kerentanan (CVE-2022-23093) telah diidentifikasi dalam utilitas ping yang termasuk dalam distribusi dasar. Masalah ini berpotensi menyebabkan eksekusi kode jarak jauh dengan hak akses root saat melakukan ping ke host eksternal yang dikendalikan oleh penyerang. Perbaikan diberikan dalam pembaruan FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 dan 12.3-RELEASE-p10. Belum jelas apakah sistem BSD lainnya terpengaruh oleh kerentanan yang teridentifikasi (belum ada laporan mengenai kerentanan di NetBSD, DragonFlyBSD, dan OpenBSD).

Kerentanan ini disebabkan oleh buffer overflow dalam kode penguraian pesan ICMP yang diterima sebagai respons terhadap permintaan verifikasi. Kode untuk mengirim dan menerima pesan ICMP dalam ping menggunakan soket mentah dan dieksekusi dengan hak istimewa yang lebih tinggi (utilitas dilengkapi dengan flag root setuid). Respons diproses di sisi ping melalui rekonstruksi header IP dan ICMP dari paket yang diterima dari soket mentah. Header IP dan ICMP yang dipilih disalin ke buffer oleh pr_pack(), tanpa memperhitungkan bahwa header tambahan tambahan mungkin ada dalam paket setelah header IP.

Header tersebut diekstraksi dari paket dan dimasukkan ke dalam blok header, tetapi tidak diperhitungkan saat menghitung ukuran buffer. Jika host, sebagai respons terhadap permintaan ICMP yang dikirim, mengembalikan paket dengan header tambahan, isinya akan ditulis ke area di luar batas buffer pada tumpukan. Akibatnya, penyerang dapat menimpa hingga 40 byte data di tumpukan, sehingga berpotensi memungkinkan kode mereka untuk dieksekusi. Tingkat keparahan masalah dikurangi dengan fakta bahwa pada saat kesalahan terjadi, proses berada dalam keadaan isolasi panggilan sistem (mode kemampuan), sehingga sulit untuk mendapatkan akses ke seluruh sistem setelah mengeksploitasi kerentanan. .

Sumber: opennet.ru

Tambah komentar