Linux çekirdeğinin ksmbd modülünde, kodunuzu uzaktan çalıştırmanıza izin veren güvenlik açığı

Linux çekirdeğinde yerleşik SMB protokolünü temel alan bir dosya sunucusu uygulamasını içeren ve kodunuzu çekirdek haklarıyla uzaktan yürütmenize olanak tanıyan ksmbd modülünde kritik bir güvenlik açığı tespit edildi. Saldırı kimlik doğrulaması yapılmadan gerçekleştirilebilir; sistemde ksmbd modülünün aktif olması yeterlidir. Sorun, Kasım 5.15'de yayınlanan çekirdek 2021'ten bu yana ortaya çıkıyor ve Ağustos 5.15.61'de yayınlanan 5.18.18, 5.19.2 ve 2022 güncellemelerinde sessizce düzeltildi. Henüz konuya CVE tanımlayıcısı atanmadığı için dağıtımlarda sorunun nasıl düzeltileceğine dair kesin bir bilgi bulunmuyor.

Güvenlik açığından yararlanılmasına ilişkin ayrıntılar henüz açıklanmadı; yalnızca güvenlik açığının, işlemleri gerçekleştirmeden önce bir nesnenin varlığının kontrol edilmemesi nedeniyle önceden boşaltılmış bir bellek alanına (Serbest Bırakıldıktan Sonra Kullan) erişimden kaynaklandığı biliniyor. üstünde. Sorun, smb2_tree_disconnect() işlevinin ksmbd_tree_connect yapısı için ayrılan belleği serbest bırakmasından kaynaklanmaktadır, ancak bundan sonra SMB2_TREE_DISCONNECT komutlarını içeren belirli harici istekleri işlerken hala kullanılan bir işaretçi mevcuttur.

Bahsedilen güvenlik açığına ek olarak ksmbd'de daha az tehlikeli olan 4 sorun da giderildi:

  • ZDI-22-1688 - dosya özniteliği işleme kodunun harici veriyi özel bir arabelleğe kopyalamadan önce gerçek boyutunu kontrol etmemesi nedeniyle çekirdek haklarıyla uzaktan kod yürütme. Saldırının yalnızca kimliği doğrulanmış bir kullanıcı tarafından gerçekleştirilebilmesi nedeniyle güvenlik açığı azaltılmıştır.
  • ZDI-22-1691 - SMB2_WRITE komut işleyicisindeki giriş parametrelerinin yanlış kontrolü nedeniyle çekirdek belleğinden uzaktan bilgi sızıntısı (saldırı yalnızca kimliği doğrulanmış bir kullanıcı tarafından gerçekleştirilebilir).
  • ZDI-22-1687 - SMB2_NEGOTIATE komut işleyicisindeki kaynakların yanlış serbest bırakılması nedeniyle sistemdeki kullanılabilir belleğin tükenmesinden kaynaklanan uzaktan hizmet reddi (saldırı, kimlik doğrulama olmadan gerçekleştirilebilir).
  • ZDI-22-1689 - SMB2_TREE_CONNECT komutunun parametrelerinin uygun şekilde doğrulanmaması nedeniyle uzaktan çekirdek çökmesi, arabellek dışındaki bir alandan okuma yapılmasına neden oldu (saldırı yalnızca kimliği doğrulanmış bir kullanıcı tarafından gerçekleştirilebilir).

Ksmbd modülünü kullanarak bir SMB sunucusunu çalıştırma desteği, 4.16.0 sürümünden bu yana Samba paketinde mevcuttur. Kullanıcı alanı SMB sunucusunun aksine ksmbd, performans, bellek tüketimi ve gelişmiş çekirdek özellikleriyle entegrasyon açısından daha verimlidir. Ksmbd, gerektiğinde Samba araçları ve kitaplıklarıyla entegre olabilen, yüksek performanslı, yerleşik kullanıma hazır bir Samba uzantısı olarak lanse ediliyor. Ksmbd kodu, Samsung'dan Namjae Jeon ve LG'den Hyunchul Lee tarafından yazılmıştır ve çekirdeğin bakımı, Linux çekirdeğindeki CIFS/SMB2/SMB3 alt sistemlerinin bakımcısı ve Samba geliştirme ekibinin uzun süredir üyesi olan Microsoft'tan Steve French tarafından yapılmaktadır. Samba ve Linux'ta SMB/CIFS protokollerine yönelik desteğin uygulanmasına önemli katkılarda bulunan Dr.

Kaynak: opennet.ru

Yorum ekle