Kerentanan dalam protokol rangkaian CAN BCM membenarkan peningkatan hak istimewa dalam kernel linux 

Semalam maklumat dikeluarkan mengenai kerentanan dalam kernel Linux dan yang sudah di katalog sebagai CVE-2021-3609. Kerentanan ini membolehkan pengguna tempatan meningkatkan keistimewaan mereka pada sistem kerana keadaan perlumbaan dalam pelaksanaan protokol CAN BCM dan dimanifestasikan dalam versi 2.6.25 hingga 5.13-rc6 kernel Linux.

Keputusan itu mengambil keuntungan kerana ia CAN protokol BCM membolehkan anda mendaftar pengurus mesej anda sendiri rangkaian kawasan pengawal (CAN) dan sambungkannya ke soket rangkaian tertentu. Apabila mesej masuk tiba, fungsi dipanggil bcm_rx_handler () penyerang dapat memanfaatkan keadaan perlumbaan dan memaksa soket rangkaian ditutup semasa melaksanakan bcm_rx_handler ().

Masalahnya timbul apabila soket ditutup dan fungsi disebut bcm_release (), di mana memori yang diperuntukkan untuk struktur dibebaskan bcm_op dan bcm_sock, yang terus digunakan dalam pengendali bcm_rx_handler () yang masih berjalan, sehingga timbul situasi yang membawa kepada akses ke blok memori yang sudah dibebaskan (penggunaan-selepas-bebas).

Ini adalah pengumuman bug yang baru-baru ini dilaporkan (CVE-2021-3609) dalam protokol rangkaian CAN BCM dalam kernel Linux mulai dari versi 2.6.25 hingga mainline 5.13-rc6.
Kerentanan adalah keadaan perlumbaan di net / can / bcm.c yang memungkinkan peningkatan hak istimewa ke root. Masalahnya pada mulanya dilaporkan oleh syzbot dan Norbert Slusarek terbukti dapat dimanfaatkan.

Serangan tersebut menyebabkan membuka dua soket CAN BCM dan mengikatnya ke antara muka vcan. Pada penyambung pertama, anda memanggil sendmsg () dengan penunjuk RX_SETUP untuk mengkonfigurasi pengawal untuk mesej CAN yang masuk dan pada penyambung kedua, anda memanggil sendmsg () untuk menghantar mesej ke penyambung pertama.

Selepas mesej tiba, panggilan bcm_rx_handler () dicetuskan dan penyerang mengambil masa yang tepat dan menutup soket pertama, yang membawa kepada pelancaran bcm_release () dan pelancaran struktur bcm_op dan bcm_sock, walaupun karya dari bcm_rx_handler () ia belum selesai.

Dengan memanipulasi kandungan bcm_sock, penyerang dapat mengganti pointer ke fungsi sk-> sk_data_ready (sk), mengarahkan pelaksanaan, dan, menggunakan teknik pengaturcaraan berorientasi kembali (ROP), menimpa parameter modprobe_path dan membuat kodnya berjalan sebagai root .

Semasa menggunakan teknik ROP, penyerang tidak cuba memasukkan kodnya dalam kenangan, tetapi beroperasi pada kepingan dari arahan mesin sudah tersedia di perpustakaan dimuat, diakhiri dengan pernyataan pengembalian kawalan (sebagai peraturan, ini adalah akhir fungsi perpustakaan).

Kebenaran yang diperlukan untuk melakukan serangan dapat diperoleh oleh pengguna yang tidak memiliki hak dalam kontainer yang dibuat pada sistem dengan ruang nama pengguna diaktifkan. Sebagai contoh, ruang nama pengguna disertakan secara lalai di Ubuntu dan Fedora, tetapi tidak diaktifkan di Debian dan RHEL.

Percubaan eksploitasi saya tertumpu pada kernel dengan versi> = 5.4-rc1 dari komit bf74aa86e111. Saya tidak menyiasat mengeksploitasi kernel yang lebih tua dari 5.4-rc1 menggunakan tasklet, namun mengeksploitasi kernel yang lebih tua nampaknya juga dapat dilaksanakan. 

Disebutkan bahawa penyelidik yang mengenal pasti kerentanan dapat menyiapkan eksploitasi untuk mendapatkan hak root pada sistem dengan kernel dari versi 5.4 dan yang lebih baru, termasuk kemungkinan serangan yang berjaya pada Ubuntu 20.04.02 LTS.

Kerja eksploitasi dikurangkan untuk membangun rangkaian panggilan ke blok serupa ("gadget") untuk mendapatkan fungsi yang diperlukan. Serangan itu memerlukan akses untuk membuat soket CAN dan antara muka rangkaian vcan yang dikonfigurasi.

Akhirnya disebutkan bahawa masalahnya masih berlanjutan pada sebilangan besar pengedaran, tetapi perlu beberapa hari sebelum patch yang sesuai dilepaskan.

Sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh berunding pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.