Kerentanan pada kernel Linux dieksploitasi dari jarak jauh melalui Bluetooth

Kerentanan (CVE-2022-42896) telah diidentifikasi di kernel Linux, yang berpotensi digunakan untuk mengatur eksekusi kode jarak jauh di tingkat kernel dengan mengirimkan paket L2CAP yang dirancang khusus melalui Bluetooth. Selain itu, masalah serupa lainnya telah diidentifikasi (CVE-2022-42895) di pengendali L2CAP, yang dapat menyebabkan kebocoran konten memori kernel dalam paket dengan informasi konfigurasi. Kerentanan pertama muncul sejak Agustus 2014 (kernel 3.16), dan kerentanan kedua sejak Oktober 2011 (kernel 3.0). Kerentanan telah diatasi dalam rilis 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 dapat melacak perbaikan distribusi di halaman berikut: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Untuk mendemonstrasikan kemungkinan melakukan serangan jarak jauh, prototipe eksploitasi telah diterbitkan yang berfungsi di Ubuntu 22.04. Untuk melakukan serangan, penyerang harus berada dalam jangkauan Bluetooth—pemasangan awal tidak diperlukan, namun Bluetooth harus aktif di komputer. Untuk melakukan serangan, cukup mengetahui alamat MAC perangkat korban, yang dapat ditentukan dengan mengendus atau, pada beberapa perangkat, dihitung berdasarkan alamat MAC Wi-Fi.

Kerentanan pertama (CVE-2022-42896) disebabkan oleh mengakses area memori yang sudah dibebaskan (use-after-free) dalam implementasi fungsi l2cap_connect dan l2cap_le_connect_req - setelah membuat saluran melalui callback new_connection, kunci tidak disetel untuk itu, tetapi pengatur waktu telah disetel (__set_chan_timer ), setelah batas waktu habis, memanggil fungsi l2cap_chan_timeout dan membersihkan saluran tanpa memeriksa penyelesaian pekerjaan dengan saluran di fungsi l2cap_le_connect*.

Batas waktu default adalah 40 detik dan diasumsikan bahwa kondisi balapan tidak dapat terjadi dengan penundaan seperti itu, namun ternyata karena kesalahan lain pada pengendali SMP, panggilan instan ke pengatur waktu dapat dilakukan dan mencapai a kondisi balapan. Masalah di l2cap_le_connect_req dapat menyebabkan kebocoran memori kernel, dan di l2cap_connect dapat menyebabkan penimpaan isi memori dan eksekusi kodenya. Jenis serangan pertama dapat dilakukan menggunakan Bluetooth LE 4.0 (sejak 2009), yang kedua menggunakan Bluetooth BR/EDR 5.2 (sejak 2020).

Kerentanan kedua (CVE-2022-42895) disebabkan oleh kebocoran memori sisa pada fungsi l2cap_parse_conf_req, yang dapat digunakan untuk memperoleh informasi tentang pointer ke struktur kernel dari jarak jauh dengan mengirimkan permintaan konfigurasi yang dibuat khusus. Fungsi l2cap_parse_conf_req menggunakan struktur l2cap_conf_efs, yang mana memori yang dialokasikan belum diinisialisasi sebelumnya dan dengan memanipulasi flag FLAG_EFS_ENABLE, data lama dari tumpukan dapat dimasukkan ke dalam paket. Masalah hanya muncul pada sistem yang kernelnya dibuat dengan opsi CONFIG_BT_HS (dinonaktifkan secara default, tetapi diaktifkan di beberapa distribusi, seperti Ubuntu). Serangan yang berhasil juga memerlukan pengaturan parameter HCI_HS_ENABLED melalui antarmuka manajemen ke true (tidak digunakan secara default).

Sumber: opennet.ru

Tambah komentar