CVE-2025-21739

Yüksək

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: scsi: ufs: core: init xətası zamanı yaranan use-after-free probleminin düzəldilməsi və yolların silinməsi devm_blk_crypto_profile_init() funksiyası əlaqəli (platform-) cihaz azad edilərkən işləyəcək təmizləmə idarəçisini qeydiyyata alır. UFS üçün kripto özəl məlumatları və göstəriciləri ufs_hba-nın 'struct ufs_hba::crypto_profile' məlumat strukturunun bir hissəsi kimi saxlanılır. Bu struktur alt ufshcd və buna görə də Scsi_host ayırmasının bir hissəsi kimi ayrılır. Drayverin azad edilməsi və ya ufshcd_pltfrm_init() funksiyasındakı xəta emalı zamanı, bu struktur yuxarıdakı kripto çağırışı ilə əlaqəli (platform-) cihaz azad edilməzdən əvvəl ufshcd_dealloc_host() vasitəsilə azad edilir. Bu cihaz azad edildikdə, kripto təmizləmə kodu yeni azad edilmiş 'struct ufs_hba::crypto_profile'-dan istifadə edərək işə düşür. Bu isə use-after-free vəziyyətinə səbəb olur: Call trace: kfree+0x60/0x2d8 (P) kvfree+0x44/0x60 blk_crypto_profile_destroy_callback+0x28/0x70 devm_action_release+0x1c/0x30 release_nodes+0x6c/0x108 devres_release_all+0x98/0x100 device_unbind_cleanup+0x20/0x70 really_probe+0x218/0x2d0 Başqa sözlə, ilkinləşdirmə kod axını belədir: platform-device probe ufshcd_pltfrm_init() ufshcd_alloc_host() scsi_host_alloc() struct ufs_hba-nın ayrılması scsi-host cihazlarının yaradılması devm_blk_crypto_profile_init() platform-device istifadə etməklə təmizləmə idarəçisinin devm qeydiyyatı və ufshcd_pltfrm_init()-in xəta emalı və ya drayverin silinməsi zamanı: ufshcd_dealloc_host() scsi_host_put() put_device(scsi-host) struct ufs_hba-nın azad edilməsi put_device(platform-device) kripto təmizləmə idarəçisi Bu use-after-free problemini həll etmək üçün ufshcd_alloc_host() funksiyasını, ufshcd məhv edildikdə alt SCSI cihazını avtomatik təmizləyən devres hərəkətini qeydiyyata alacaq şəkildə dəyişin; bu, ufshcd_dealloc_host() funksiyasına açıq çağırışlar tələb etmir. Beləliklə: * kripto profili və digər bütün ufs_hba-ya məxsus resurslar SCSI-dən əvvəl məhv edilir (çünki onlar sonra qeydiyyata alınıblar) * yan təsir olaraq tc-dwc-g210-pci.c remove() funksiyasındakı memleak problemi aradan qaldırılır * artıq ehtiyac qalmadığı üçün EXPORT_SYMBOL_GPL(ufshcd_dealloc_host) tamamilə silinə bilər * gələcəkdə ufshcd_alloc_host() istifadə edən heç bir drayver təmizləmənin əlavə edilməsini unutmayacaq

CiddilikYüksək
CVSS7.8
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc27 fev 2025
İlk görülmə27 fev 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.12.14, 6.13.3 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.12 ≤ v < 6.12.14, 6.13 ≤ v < 6.13.3, 6.146.12.14, 6.13.3

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.