Mereka mendeteksi kerentanan di ksmbd di Kernel Linux

kerentanan

Jika dieksploitasi, kelemahan ini dapat memungkinkan penyerang mendapatkan akses tidak sah ke informasi sensitif atau umumnya menyebabkan masalah

Informasi baru-baru ini dirilis bahwa kerentanan kernel Linux ditemukan dengan skor CVSS 10 di server SMB, memberi pengguna yang tidak diautentikasi kemampuan untuk mengeksekusi kode dari jarak jauh.

Bug yang ditemukan memungkinkan penyerang jarak jauh untuk mengeksekusi kode sewenang-wenang pada instalasi yang terpengaruh. Otentikasi tidak diperlukan untuk mengeksploitasi kerentanan ini, tetapi hanya sistem dengan ksmbd yang diaktifkan yang rentan.

Cacat spesifik ada dalam pemrosesan perintah SMB2_TREE_DISCONNECT. Hasil masalah dari tidak memvalidasi objek yang ada sebelum melakukan operasi pada objek itu. Penyerang dapat mengeksploitasi kerentanan ini untuk mengeksekusi kode dalam konteks kernel.

DETAIL KERENTANAN
Kerentanan ini memungkinkan penyerang jarak jauh untuk mengeksekusi kode arbitrer pada penginstalan Kernel Linux yang terpengaruh. Otentikasi tidak diperlukan untuk mengeksploitasi kerentanan ini, tetapi hanya sistem dengan ksmbd yang diaktifkan yang rentan.

Cacat spesifik ada dalam pemrosesan perintah SMB2_TREE_DISCONNECT. Masalah tersebut disebabkan oleh kurangnya validasi keberadaan suatu objek sebelum melakukan operasi pada objek tersebut. Penyerang dapat mengeksploitasi kerentanan ini untuk mengeksekusi kode dalam konteks kernel.

Disebutkan bahwa tergantung pada jenis permintaan SMB, setiap utas baru dapat memutuskan untuk meneruskan perintah ke ruang pengguna (ksmbd.mountd); saat ini, perintah DCE/RPC diidentifikasi untuk ditangani oleh ruang pengguna. Untuk memanfaatkan kernel Linux dengan lebih baik, diputuskan untuk memperlakukan perintah sebagai item kerja dan menjalankannya di penangan utas ksmbd -io kworker.

Hal ini memungkinkan manajer untuk melakukan multipleks karena kernel menangani memulai utas pekerja tambahan jika beban meningkat dan sebaliknya, jika beban berkurang, ini mematikan utas pekerja tambahan.

Saat daemon server dimulai, ia memulai utas garpu (ksmbd/nama antarmuka) saat boot dan membuka port khusus 445 untuk mendengarkan permintaan SMB. Setiap kali klien baru mengajukan permintaan, utas forker menerima koneksi klien dan membuat utas baru untuk saluran komunikasi khusus antara klien dan server. Hal ini memungkinkan permintaan (perintah) SMB dari klien untuk diproses secara paralel dan memungkinkan klien baru untuk membuat koneksi baru.

ksmbd mengibarkan bendera merah di antara beberapa pengguna yang membahas merger mereka tahun lalu. SerNet, sebuah perusahaan komputer Jerman yang menawarkan versi Samba sendiri, mengatakan dalam sebuah posting blog bahwa ksmbd luar biasa, tetapi tampak agak kekanak-kanakan. Selain itu, tim Samba+ SerNet menyatakan dalam posting blog bahwa nilai menambahkan server SMB ke ruang kernel mungkin tidak sebanding dengan risiko "memeras sedikit kinerja terakhir dari hal-hal yang tersedia."

Untungnya, jika Anda tidak menjalankan modul ksmbd "eksperimental" Samsung, seperti yang dijelaskan oleh peneliti keamanan Shir Tamari di Twitter, dan menyimpan Samba, Anda aman sepenuhnya. “ksmbd baru; sebagian besar pengguna masih menggunakan Samba dan tidak terpengaruh. Pada dasarnya, jika Anda tidak menjalankan server SMB dengan ksmbd, nikmati akhir pekan Anda," kicau Tamari.

Menurut Zero-Day Initiative, yang mengungkapkan kerentanan ksmbd, cacat penggunaan-setelah-bebas ada dalam pemrosesan perintah SMB2_TREE_DISCONNECT. Menurut ZDI, masalah tersebut disebabkan oleh ksmbd tidak memvalidasi keberadaan objek sebelum melakukan operasi pada objek tersebut.

Bagi mereka yang menggunakan ksmbd, ada solusi selain beralih ke Samba: tingkatkan ke kernel Linux versi 5.15.61, dirilis pada bulan Agustus, atau setelahnya. Pembaruan kernel ini juga memperbaiki beberapa masalah lain di ksmbd: pembacaan di luar batas untuk SMB2_TREE_CONNECT, yang menurut catatan tambalan dapat memungkinkan permintaan yang tidak valid untuk tidak mengirim pesan, dan kebocoran memori di smb2_handle_negotiate menyebabkan kebebasan yang salah. Penyimpanan.

akhirnya jika kamu tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya Di tautan berikut.