Kerentanan dalam Polkit yang membolehkan anda meningkatkan keistimewaan anda dalam sistem

Kerentanan (CVE-2021-3560) telah dikenal pasti dalam komponen Polkit, yang digunakan dalam pengedaran untuk membolehkan pengguna yang tidak mempunyai hak untuk melakukan tindakan yang memerlukan hak akses yang tinggi (contohnya, memasang pemacu USB), yang membolehkan pengguna tempatan untuk mendapatkan hak akar dalam sistem. Kerentanan diperbaiki dalam versi Polkit 0.119.

Masalahnya telah wujud sejak keluaran 0.113, tetapi banyak pengedaran, termasuk RHEL, Ubuntu, Debian, dan SUSE, telah menyokong fungsi yang terjejas ke dalam pakej berdasarkan keluaran Polkit yang lebih lama (pembetulan pakej sudah tersedia dalam pengedaran).

Masalahnya nyata dalam fungsi polkit_system_bus_name_get_creds_sync(), yang memperoleh pengecam (uid dan pid) bagi proses yang meminta peningkatan keistimewaan. Satu proses dikenal pasti oleh Polkit dengan memberikan nama unik dalam DBus, yang kemudiannya digunakan untuk mengesahkan keistimewaan. Jika proses terputus sambungan daripada dbus-daemon sejurus sebelum pengendali polkit_system_bus_name_get_creds_sync bermula, pengendali menerima kod ralat dan bukannya nama unik.

Kerentanan ini disebabkan oleh fakta bahawa kod ralat yang dikembalikan tidak diproses dengan betul dan fungsi polkit_system_bus_name_get_creds_sync() mengembalikan BENAR dan bukannya FALSE, walaupun gagal memadankan proses dengan uid/pid dan mengesahkan keistimewaan yang diminta untuk proses tersebut. Kod dari mana fungsi polkit_system_bus_name_get_creds_sync() dipanggil mengandaikan bahawa semakan itu berjaya dan permintaan untuk meningkatkan keistimewaan datang daripada akar dan bukan daripada pengguna yang tidak mempunyai hak istimewa, yang memungkinkan untuk melakukan tindakan istimewa tanpa pengesahan tambahan dan pengesahan kelayakan.

Sumber: opennet.ru

Tambah komen