Kerentanan dalam modul ksmbd kernel Linux, yang membolehkan anda melaksanakan kod anda dari jauh

Kerentanan kritikal telah dikenal pasti dalam modul ksmbd, yang termasuk pelaksanaan pelayan fail berdasarkan protokol SMB yang dibina ke dalam kernel Linux, yang membolehkan anda melaksanakan kod anda dari jauh dengan hak kernel. Serangan boleh dilakukan tanpa pengesahan; cukuplah modul ksmbd diaktifkan pada sistem. Masalahnya telah muncul sejak kernel 5.15, dikeluarkan pada November 2021, dan telah dibetulkan secara senyap-senyap dalam kemas kini 5.15.61, 5.18.18 dan 5.19.2, dikeluarkan pada Ogos 2022. Memandangkan pengecam CVE belum lagi diberikan kepada isu tersebut, tiada maklumat tepat tentang cara membetulkan isu dalam pengedaran.

Butiran tentang eksploitasi kelemahan masih belum didedahkan; hanya diketahui bahawa kelemahan disebabkan oleh mengakses kawasan memori yang telah dibebaskan (Gunakan-Selepas-Bebas) kerana kekurangan menyemak kewujudan objek sebelum menjalankan operasi di atasnya. Masalahnya adalah disebabkan oleh fakta bahawa fungsi smb2_tree_disconnect() membebaskan memori yang diperuntukkan untuk struktur ksmbd_tree_connect, tetapi selepas itu masih terdapat penunjuk digunakan semasa memproses permintaan luaran tertentu yang mengandungi arahan SMB2_TREE_DISCONNECT.

Sebagai tambahan kepada kelemahan yang disebutkan, 4 masalah yang kurang berbahaya juga telah diperbaiki dalam ksmbd:

  • ZDI-22-1688 - pelaksanaan kod jauh dengan hak kernel disebabkan kod pemprosesan atribut fail tidak menyemak saiz sebenar data luaran sebelum menyalinnya ke penimbal khusus. Kerentanan dikurangkan oleh fakta bahawa serangan hanya boleh dilakukan oleh pengguna yang disahkan.
  • ZDI-22-1691 - kebocoran maklumat jauh dari memori kernel kerana pemeriksaan parameter input yang salah dalam pengendali arahan SMB2_WRITE (serangan hanya boleh dilakukan oleh pengguna yang disahkan).
  • ZDI-22-1687 - penafian jauh perkhidmatan yang disebabkan oleh kehabisan memori yang tersedia dalam sistem akibat pelepasan sumber yang salah dalam pengendali arahan SMB2_NEGOTIATE (serangan boleh dilakukan tanpa pengesahan).
  • ZDI-22-1689 - Ranap kernel jauh yang disebabkan oleh kegagalan menyemak parameter arahan SMB2_TREE_CONNECT dengan betul, menghasilkan bacaan dari kawasan di luar penimbal (serangan hanya boleh dilakukan oleh pengguna yang disahkan).

Sokongan untuk menjalankan pelayan SMB menggunakan modul ksmbd telah ada dalam pakej Samba sejak keluaran 4.16.0. Tidak seperti pelayan SMB ruang pengguna, ksmbd lebih cekap dari segi prestasi, penggunaan memori dan penyepaduan dengan ciri kernel lanjutan. Ksmbd disebut-sebut sebagai sambungan Samba berprestasi tinggi, sedia terbenam yang disepadukan dengan alatan dan perpustakaan Samba mengikut keperluan. Kod ksmbd telah ditulis oleh Namjae Jeon dari Samsung dan Hyunchul Lee dari LG, dan kernel itu diselenggara oleh Steve French dari Microsoft, penyelenggara subsistem CIFS/SMB2/SMB3 dalam kernel Linux dan ahli lama pasukan pembangunan Samba , yang menyumbang sumbangan besar kepada pelaksanaan sokongan untuk protokol SMB/CIFS dalam Samba dan Linux.

Sumber: opennet.ru

Tambah komen