Kerentanan dalam modul ksmbd kernel Linux, yang memungkinkan Anda mengeksekusi kode dari jarak jauh

Kerentanan kritis telah diidentifikasi dalam modul ksmbd, yang mencakup implementasi server file berdasarkan protokol SMB yang dibangun ke dalam kernel Linux, yang memungkinkan Anda mengeksekusi kode dari jarak jauh dengan hak kernel. Serangan dapat dilakukan tanpa otentikasi, cukup mengaktifkan modul ksmbd pada sistem. Masalahnya telah muncul sejak kernel 5.15, dirilis pada November 2021, dan diperbaiki secara diam-diam di pembaruan 5.15.61, 5.18.18, dan 5.19.2, yang dirilis pada Agustus 2022. Karena pengidentifikasi CVE belum ditetapkan untuk masalah ini, tidak ada informasi pasti tentang cara memperbaiki masalah di distribusi.

Detail mengenai eksploitasi kerentanan tersebut belum diungkapkan, hanya diketahui bahwa kerentanan tersebut disebabkan oleh pengaksesan area memori yang sudah dibebaskan (Use-After-Free) karena kurangnya pengecekan keberadaan suatu objek sebelum melakukan operasi. di atasnya. Masalahnya disebabkan oleh fakta bahwa fungsi smb2_tree_disconnect() membebaskan memori yang dialokasikan untuk struktur ksmbd_tree_connect, tetapi setelah itu masih ada pointer yang digunakan saat memproses permintaan eksternal tertentu yang berisi perintah SMB2_TREE_DISCONNECT.

Selain kerentanan yang disebutkan, 4 masalah yang kurang berbahaya juga telah diperbaiki di ksmbd:

  • ZDI-22-1688 - eksekusi kode jarak jauh dengan hak kernel karena kode pemrosesan atribut file tidak memeriksa ukuran sebenarnya data eksternal sebelum menyalinnya ke buffer khusus. Kerentanan ini dikurangi dengan fakta bahwa serangan hanya dapat dilakukan oleh pengguna yang diautentikasi.
  • ZDI-22-1691 - kebocoran informasi jarak jauh dari memori kernel karena kesalahan pemeriksaan parameter input di pengendali perintah SMB2_WRITE (serangan hanya dapat dilakukan oleh pengguna yang diautentikasi).
  • ZDI-22-1687 - penolakan layanan jarak jauh yang disebabkan oleh kehabisan memori yang tersedia di sistem karena pelepasan sumber daya yang salah di pengendali perintah SMB2_NEGOTIATE (serangan dapat dilakukan tanpa otentikasi).
  • ZDI-22-1689 - Kernel jarak jauh mogok karena kurangnya validasi parameter perintah SMB2_TREE_CONNECT yang tepat, mengakibatkan pembacaan dari area di luar buffer (serangan hanya dapat dilakukan oleh pengguna yang diautentikasi).

Dukungan untuk menjalankan server SMB menggunakan modul ksmbd telah hadir dalam paket Samba sejak rilis 4.16.0. Berbeda dengan server SMB ruang pengguna, ksmbd lebih efisien dalam hal kinerja, konsumsi memori, dan integrasi dengan fitur kernel tingkat lanjut. Ksmbd disebut-sebut sebagai ekstensi Samba berkinerja tinggi dan siap tertanam yang terintegrasi dengan alat dan pustaka Samba sesuai kebutuhan. Kode ksmbd ditulis oleh Namjae Jeon dari Samsung dan Hyunchul Lee dari LG, dan kernel dikelola oleh Steve French dari Microsoft, pengelola subsistem CIFS/SMB2/SMB3 di kernel Linux dan anggota lama tim pengembangan Samba , yang memberikan kontribusi signifikan terhadap implementasi dukungan untuk protokol SMB/CIFS di Samba dan Linux.

Sumber: opennet.ru

Tambah komentar