Kerentanan dalam subsistem iSCSI kernel Linux yang membolehkan anda meningkatkan keistimewaan anda

Kerentanan (CVE-2021-27365) telah dikenal pasti dalam kod subsistem iSCSI bagi kernel Linux, yang membenarkan pengguna tempatan yang tidak mempunyai hak untuk melaksanakan kod pada peringkat kernel dan mendapat keistimewaan akar dalam sistem. Prototaip kerja eksploitasi tersedia untuk ujian. Kerentanan telah ditangani dalam kemas kini kernel Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 dan 4.4.260. Kemas kini pakej kernel tersedia pada pengedaran Debian, Ubuntu, SUSE/openSUSE, Arch Linux dan Fedora. Tiada pembetulan telah dikeluarkan untuk RHEL lagi.

Masalahnya disebabkan oleh ralat dalam fungsi iscsi_host_get_param() daripada modul libiscsi, yang diperkenalkan pada tahun 2006 semasa pembangunan subsistem iSCSI. Disebabkan kekurangan semakan saiz yang betul, beberapa atribut rentetan iSCSI, seperti nama hos atau nama pengguna, mungkin melebihi nilai PAGE_SIZE (4 KB). Kerentanan boleh dieksploitasi oleh pengguna yang tidak mempunyai hak yang menghantar mesej Netlink yang menetapkan atribut iSCSI kepada nilai yang lebih besar daripada PAGE_SIZE. Apabila atribut ini dibaca melalui sysfs atau seqfs, kod dipanggil yang menghantar atribut kepada fungsi sprintf untuk disalin ke dalam penimbal yang saiznya ialah PAGE_SIZE.

Eksploitasi kelemahan dalam pengedaran bergantung pada sokongan untuk memuatkan automatik modul kernel scsi_transport_iscsi apabila cuba mencipta soket NETLINK_ISCSI. Dalam pengedaran di mana modul ini dimuatkan secara automatik, serangan boleh dilakukan tanpa mengira penggunaan fungsi iSCSI. Pada masa yang sama, untuk berjaya menggunakan eksploitasi, pendaftaran sekurang-kurangnya satu pengangkutan iSCSI juga diperlukan. Sebaliknya, untuk mendaftar pengangkutan, anda boleh menggunakan modul kernel ib_iser, yang dimuatkan secara automatik apabila pengguna yang tidak mempunyai hak cuba mencipta soket NETLINK_RDMA.

Pemuatan automatik modul yang diperlukan untuk aplikasi eksploitasi disokong dalam CentOS 8, RHEL 8 dan Fedora apabila memasang pakej teras rdma pada sistem, yang merupakan pergantungan untuk beberapa pakej popular dan dipasang secara lalai dalam konfigurasi untuk stesen kerja, sistem pelayan dengan GUI dan virtualisasi persekitaran hos. Walau bagaimanapun, rdma-core tidak dipasang apabila menggunakan pemasangan pelayan yang berfungsi hanya dalam mod konsol dan apabila memasang imej pemasangan minimum. Sebagai contoh, pakej disertakan dalam pengedaran asas Fedora 31 Workstation, tetapi tidak termasuk dalam Pelayan Fedora 31. Debian dan Ubuntu kurang terdedah kepada masalah ini kerana pakej teras rdma memuatkan modul kernel yang diperlukan untuk serangan hanya jika perkakasan RDMA hadir.

Kerentanan dalam subsistem iSCSI kernel Linux yang membolehkan anda meningkatkan keistimewaan anda

Sebagai penyelesaian keselamatan, anda boleh melumpuhkan pemuatan automatik modul libiscsi: echo β€œinstall libiscsi /bin/true” >> /etc/modprobe.d/disable-libiscsi.conf

Selain itu, dua kelemahan yang kurang berbahaya yang boleh menyebabkan kebocoran data daripada kernel telah diperbaiki dalam subsistem iSCSI: CVE-2021-27363 (kebocoran maklumat deskriptor pengangkutan iSCSI melalui sysfs) dan CVE-2021-27364 (penimbal luar sempadan baca). Kerentanan ini boleh digunakan untuk berkomunikasi melalui soket netlink dengan subsistem iSCSI tanpa keistimewaan yang diperlukan. Sebagai contoh, pengguna yang tidak mempunyai hak istimewa boleh menyambung ke iSCSI dan mengeluarkan arahan "menamatkan sesi" untuk menamatkan sesi.

Sumber: opennet.ru

Tambah komen