kerentanan sudo root mempengaruhi Linux Mint dan Elementary OS

Di utilitas sudo, digunakan untuk mengatur pelaksanaan perintah atas nama pengguna lain, diidentifikasi kerentanan (CVE-2019-18634), yang memungkinkan Anda meningkatkan hak istimewa Anda di sistem ke pengguna root. Masalahnya hanya muncul sejak rilis sudo 1.7.1 ketika menggunakan opsi “pwfeedback” di file /etc/sudoers, yang dinonaktifkan secara default tetapi diaktifkan pada beberapa distribusi seperti Linux Mint dan Elementary OS. Masalah diperbaiki dalam rilis sudo 1.8.31, diterbitkan beberapa jam yang lalu. Kerentanan masih belum diperbaiki dalam kit distribusi.

Opsi “pwfeedback” memungkinkan tampilan karakter “*” setelah setiap karakter yang dimasukkan saat memasukkan kata sandi. Karena Kesalahan Dalam implementasi fungsi getln(), yang didefinisikan dalam file tgetpass.c, string kata sandi yang terlalu besar yang diteruskan melalui aliran input standar (stdin) dalam kondisi tertentu mungkin tidak masuk ke dalam buffer yang dialokasikan dan menimpa data lain di tumpukan. Overflow terjadi ketika menjalankan kode sudo sebagai root.

Inti masalahnya adalah ketika menggunakan karakter khusus ^U (penghapusan baris) selama input dan jika operasi penulisan gagal, kode yang bertanggung jawab untuk menghapus karakter "*" pada output akan mengatur ulang data pada ukuran buffer yang tersedia, tetapi tidak mengembalikan penunjuk ke nilai awal posisi saat ini di buffer. Faktor lain yang berkontribusi terhadap eksploitasi adalah kurangnya penonaktifan otomatis mode "pwfeedback" ketika data datang bukan dari terminal, tetapi melalui aliran input (kelemahan ini memungkinkan terciptanya kondisi untuk terjadinya kesalahan perekaman, misalnya, pada sistem dengan searah saluran yang tidak disebutkan namanya terjadi kesalahan saat mencoba menulis ke akhir saluran baca).

Karena penyerang memiliki kendali penuh atas penimpaan data di tumpukan, tidak sulit untuk membuat eksploitasi yang memungkinkan dia meningkatkan hak istimewanya untuk melakukan root. Masalahnya dapat dieksploitasi oleh pengguna mana pun, terlepas dari izin sudo atau pengaturan khusus pengguna di sudoers. Untuk memblokir masalah, Anda harus memastikan bahwa tidak ada pengaturan “pwfeedback” di /etc/sudoers dan, jika perlu, nonaktifkan (“Defaults !pwfeedback”). Untuk memeriksa apakah ada masalah, Anda dapat menjalankan kode:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -Sid
Kata sandi: Kesalahan segmentasi

Sumber: opennet.ru

Tambah komentar