Kerentanan dalam kernel Linux dieksploitasi dari jauh melalui Bluetooth

Kerentanan (CVE-2022-42896) telah dikenal pasti dalam kernel Linux, yang berpotensi digunakan untuk mengatur pelaksanaan kod jauh pada peringkat kernel dengan menghantar paket L2CAP yang direka khas melalui Bluetooth. Di samping itu, satu lagi isu serupa telah dikenal pasti (CVE-2022-42895) dalam pengendali L2CAP, yang boleh menyebabkan kebocoran kandungan memori kernel dalam paket dengan maklumat konfigurasi. Kerentanan pertama telah muncul sejak Ogos 2014 (kernel 3.16), dan yang kedua sejak Oktober 2011 (kernel 3.0). Kerentanan telah ditangani dalam keluaran kernel Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154, dan 5.15.78. Anda boleh menjejaki pembetulan dalam pengedaran pada halaman berikut: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Untuk menunjukkan kemungkinan melakukan serangan jauh, eksploitasi prototaip telah diterbitkan yang berfungsi pada Ubuntu 22.04. Untuk melakukan serangan, penyerang mesti berada dalam julat Bluetooth—prapasangan tidak diperlukan, tetapi Bluetooth mesti aktif pada komputer. Untuk serangan, cukup untuk mengetahui alamat MAC peranti mangsa, yang boleh ditentukan dengan menghidu atau, pada sesetengah peranti, dikira berdasarkan alamat MAC Wi-Fi.

Kerentanan pertama (CVE-2022-42896) disebabkan oleh mengakses kawasan memori yang telah dibebaskan (guna-selepas-bebas) dalam pelaksanaan fungsi l2cap_connect dan l2cap_le_connect_req - selepas mencipta saluran melalui panggilan balik new_connection, kunci tidak ditetapkan untuk itu, tetapi pemasa telah ditetapkan (__set_chan_timer ), apabila tamat masa tamat, memanggil fungsi l2cap_chan_timeout dan mengosongkan saluran tanpa menyemak penyiapan kerja dengan saluran dalam fungsi l2cap_le_connect*.

Tamat masa lalai ialah 40 saat dan diandaikan bahawa keadaan perlumbaan tidak boleh berlaku dengan kelewatan sedemikian, tetapi ternyata disebabkan ralat lain dalam pengendali SMP, adalah mungkin untuk mencapai panggilan segera ke pemasa dan mencapai keadaan bangsa. Masalah dalam l2cap_le_connect_req boleh membawa kepada kebocoran memori kernel, dan dalam l2cap_connect ia boleh membawa kepada menulis ganti kandungan memori dan melaksanakan kodnya. Jenis serangan pertama boleh dilakukan menggunakan Bluetooth LE 4.0 (sejak 2009), yang kedua apabila menggunakan Bluetooth BR/EDR 5.2 (sejak 2020).

Kerentanan kedua (CVE-2022-42895) disebabkan oleh kebocoran memori sisa dalam fungsi l2cap_parse_conf_req, yang boleh digunakan untuk mendapatkan maklumat dari jauh tentang penunjuk kepada struktur kernel dengan menghantar permintaan konfigurasi yang dibuat khas. Fungsi l2cap_parse_conf_req menggunakan struktur l2cap_conf_efs, yang mana memori yang diperuntukkan tidak dipramulakan dan dengan memanipulasi bendera FLAG_EFS_ENABLE adalah mungkin untuk memasukkan data lama daripada timbunan dalam paket. Masalahnya hanya muncul pada sistem di mana kernel dibina dengan pilihan CONFIG_BT_HS (dilumpuhkan secara lalai, tetapi didayakan pada beberapa pengedaran, seperti Ubuntu). Serangan yang berjaya juga memerlukan penetapan parameter HCI_HS_ENABLED melalui antara muka pengurusan kepada benar (tidak digunakan secara lalai).

Sumber: opennet.ru

Tambah komen