CVE-2024-53153
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: PCI: qcom-ep: Denetleyici temizleme işlemleri qcom_pcie_perst_deassert() fonksiyonuna taşındı Şu anda, uç nokta temizleme fonksiyonu dw_pcie_ep_cleanup() ve EPF başlatma sonrası bildirim fonksiyonu pci_epc_deinit_notify(), qcom_pcie_perst_assert() yürütülmesi sırasında, yani ana bilgisayar PERST# sinyalini etkinleştirdiğinde çağrılmaktadır. Ancak bu adımdan hemen sonra, refclk da ana bilgisayar tarafından devre dışı bırakılacaktır. Şu an itibarıyla desteklenen tüm Qcom uç nokta SoC'leri, denetleyicinin çalışır durumda kalması için ana bilgisayardan gelen refclk'ya bağımlıdır. Bu kısıtlama nedeniyle, refclk yokken donanım kayıtlarına yapılan herhangi bir erişim, tüm uç noktanın çökmesiyle sonuçlanacaktır. Maalesef, çoğu denetleyici temizleme işlemi donanım kayıtlarına erişimi gerektirmektedir (dw_pcie_ep_cleanup() içinde gerçekleştirilen eDMA temizliği, MHI EPF'nin kapatılması vb.). Bu nedenle, söz konusu temizleme fonksiyonları, ana bilgisayar PERST# sinyalini etkinleştirdiğinde uç nokta SoC'sinde çökmeye neden olmaktadır. Bu sorunu gidermenin bir yolu, refclk'yı ana bilgisayara bağımlı kalmadan doğrudan uç noktada üretmektir. Ancak bazı uç nokta tasarımlarının refclk'yı ana bilgisayardan tüketmesini gerektirmesi nedeniyle bu her zaman mümkün değildir (Qcom mühendisleri tarafından belirtildiği üzere). Bu nedenle, denetleyici temizleme işlemleri qcom_pcie_perst_deassert() fonksiyonunun başına taşınarak bu çökme düzeltilmiştir. qcom_pcie_perst_deassert(), ana bilgisayar PERST# sinyalini devre dışı bıraktığında çağrılır ve bu noktada refclk'nın aktif olduğu garanti edilir. Dolayısıyla, bu fonksiyonun başında (kaynaklar etkinleştirildikten sonra) denetleyici temizleme işlemi gerçekleştirilebilir. İşlem tamamlandığında, PERST# devre dışı bırakma işlemi için geri kalan kod yürütmesi normal şekilde devam edebilir.
Nasıl düzeltilir
- linux linux_kernel6.11.11, 6.12.2 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 | 6.10 ≤ v < 6.11.11, 6.12 ≤ v < 6.12.2 | 6.11.11, 6.12.2 |
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.