CVE-2025-21739
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: scsi: ufs: core: başlatma hatasında serbest bırakıldıktan sonra kullanım (use-after-free) sorununu düzelt ve yolları kaldır devm_blk_crypto_profile_init(), ilişkili (platform-) aygıt serbest bırakıldığında çalışacak bir temizleme işleyicisi kaydeder. UFS için kripto özel verileri ve işaretçiler, ufs_hba'nın 'struct ufs_hba::crypto_profile' veri yapısının bir parçası olarak saklanır. Bu yapı, temel ufshcd ve dolayısıyla Scsi_host tahsisinin bir parçası olarak ayrılır. Sürücü serbest bırakıldığında veya ufshcd_pltfrm_init() içerisindeki hata yönetimi sırasında, bu yapı yukarıdaki kripto çağrısıyla ilişkili olan (platform-) aygıt serbest bırakılmadan önce ufshcd_dealloc_host() kapsamında serbest bırakılır. Bu aygıt serbest bırakıldığında, kripto temizleme kodu yeni serbest bırakılmış olan 'struct ufs_hba::crypto_profile' yapısını kullanarak çalışır. Bu durum bir serbest bırakıldıktan sonra kullanım (use-after-free) durumuna yol açar: Çağrı izi (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 Diğer bir ifadeyle, başlatma kod akışı şöyledir: platform-device probe ufshcd_pltfrm_init() ufshcd_alloc_host() scsi_host_alloc() struct ufs_hba tahsisi scsi-host aygıtlarının oluşturulması devm_blk_crypto_profile_init() platform-device kullanılarak temizleme işleyicisinin devm kaydı ve ufshcd_pltfrm_init() hata yönetimi sırasında veya sürücü kaldırılırken: ufshcd_dealloc_host() scsi_host_put() put_device(scsi-host) struct ufs_hba serbest bırakılması put_device(platform-device) kripto temizleme işleyicisi Bu serbest bırakıldıktan sonra kullanım sorununu gidermek için, ufshcd_dealloc_host() fonksiyonuna açıkça çağrı gerektirmeden, ufshcd imhasında temel SCSI aygıtını otomatik olarak temizleyecek bir devres eylemi kaydedecek şekilde ufshcd_alloc_host() değiştirilmiştir. Bu sayede: * Kripto profili ve ufs_hba'ya ait diğer tüm kaynaklar, SCSI'den önce yok edilir (çünkü daha sonra kaydedilmişlerdir). * Yan etki olarak tc-dwc-g210-pci.c remove() kısmındaki bir bellek sızıntısı (memleak) engellenmiştir. * Artık ihtiyaç duyulmadığı için EXPORT_SYMBOL_GPL(ufshcd_dealloc_host) tamamen kaldırılabilir. * ufshcd_alloc_host() kullanan gelecekteki hiçbir sürücü temizleme işlemini eklemeyi unutamaz.
Nasıl düzeltilir
- linux linux_kernel6.12.14, 6.13.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.12 ≤ v < 6.12.14, 6.13 ≤ v < 6.13.3, 6.14 | 6.12.14, 6.13.3 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.