kerentanan akar sudo menjejaskan Linux Mint dan OS Elementary

Dalam utiliti sudo, digunakan untuk mengatur pelaksanaan perintah bagi pihak pengguna lain, dikenalpasti kelemahan (CVE-2019 18634-), yang membolehkan anda meningkatkan keistimewaan anda dalam sistem kepada pengguna root. Masalahnya muncul sejak keluaran sudo 1.7.1 hanya apabila menggunakan pilihan "pwfeedback" dalam fail /etc/sudoers, yang dilumpuhkan secara lalai tetapi didayakan pada beberapa pengedaran seperti Linux Mint dan Elementary OS. Isu dibetulkan dalam keluaran sudo 1.8.31, diterbitkan beberapa jam yang lalu. Kerentanan masih belum diperbaiki dalam kit pengedaran.

Pilihan "pwfeedback" membolehkan paparan aksara "*" selepas setiap aksara yang dimasukkan apabila memasukkan kata laluan. Disebabkan Kesilapan Dalam pelaksanaan fungsi getln(), yang ditakrifkan dalam fail tgetpass.c, rentetan kata laluan yang terlalu besar yang dihantar melalui aliran input standard (stdin) di bawah keadaan tertentu mungkin tidak sesuai dengan penimbal yang diperuntukkan dan menimpa data lain pada tindanan. Limpahan berlaku apabila menjalankan kod sudo sebagai akar.

Intipati masalahnya ialah apabila menggunakan aksara khas ^U (pembersihan baris) semasa input dan jika operasi tulis gagal, kod yang bertanggungjawab untuk mengosongkan aksara "*" output menetapkan semula data pada saiz penimbal yang tersedia, tetapi tidak kembalikan penunjuk ke kedudukan semasa nilai awal dalam penimbal. Faktor lain yang menyumbang kepada eksploitasi ialah kekurangan pelumpuhan automatik mod "pwfeedback" apabila data tiba bukan dari terminal, tetapi melalui aliran input (kecacatan ini membolehkan mewujudkan keadaan untuk ralat rakaman berlaku, contohnya, pada sistem dengan satu arah saluran yang tidak dinamakan ralat berlaku apabila cuba menulis ke penghujung saluran baca).

Memandangkan penyerang mempunyai kawalan penuh ke atas penggantian data pada timbunan, tidak sukar untuk mencipta eksploitasi yang membolehkannya meningkatkan keistimewaannya untuk mengakar. Masalahnya boleh dieksploitasi oleh mana-mana pengguna, tanpa mengira kebenaran sudo atau tetapan khusus pengguna dalam sudoers. Untuk menyekat masalah, anda harus memastikan bahawa tiada tetapan "pwfeedback" dalam /etc/sudoers dan, jika perlu, lumpuhkannya ("Defaults !pwfeedback"). Untuk menyemak sama ada terdapat masalah, anda boleh menjalankan kod:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Kata laluan: Kesalahan pembahagian

Sumber: opennet.ru

Tambah komen