Kerentanan dalam systemd yang berpotensi membolehkan anda meningkatkan keistimewaan anda

Dalam pengurus sistem systemd dikenalpasti kelemahan (CVE-2020 1712-), yang berpotensi membolehkan anda melaksanakan kod anda dengan keistimewaan yang tinggi dengan menghantar permintaan yang direka khas melalui bas DBus. Masalahnya telah dibetulkan dalam keluaran ujian systemd 245-rc1 (tampalan yang menyelesaikan masalah: 1, 2, 3). Kerentanan telah diperbaiki dalam pengedaran Ubuntu, Fedora, RHEL (muncul dalam RHEL 8, tetapi tidak menjejaskan RHEL 7), CentOS ΠΈ SUSE/openSUSE, tetapi pada masa penulisan berita itu masih tidak diperbetulkan Debian ΠΈ Arch Linux.

Kerentanan disebabkan oleh akses kepada kawasan memori yang telah dibebaskan (bebas guna selepas), yang berlaku apabila melaksanakan permintaan kepada Polkit secara tak segerak semasa memproses mesej DBus. Sesetengah antara muka DBus menggunakan cache untuk menyimpan objek untuk masa yang singkat dan mengepam entri cache sebaik sahaja bas DBus bebas untuk memproses permintaan lain. Jika pengendali kaedah DBus menggunakan bus_verify_polkit_async(), ia mungkin perlu menunggu tindakan Polkit selesai. Selepas Polkit bersedia, pengendali dipanggil semula dan mengakses data yang telah diedarkan dalam ingatan. Jika permintaan kepada Polkit mengambil masa terlalu lama, item dalam cache akan dikosongkan sebelum pengendali kaedah DBus dipanggil untuk kali kedua.

Antara perkhidmatan yang membenarkan eksploitasi kelemahan, systemd-machined dinyatakan, yang menyediakan DBus API org.freedesktop.machine1.Image.Clone, yang membawa kepada penyimpanan sementara data dalam cache dan akses tak segerak kepada Polkit. Antara muka
org.freedesktop.machine1.Image.Clone tersedia untuk semua pengguna sistem yang tidak bernasib baik, yang boleh meranapkan perkhidmatan systemd atau berkemungkinan menyebabkan kod dilaksanakan sebagai root (prototaip eksploitasi masih belum ditunjukkan). Kod yang membenarkan eksploitasi kelemahan ialah tambah dalam systemd-mesin pada versi 2015 sistem 220 (RHEL 7.x menggunakan systemd 219).

Sumber: opennet.ru

Tambah komen