CVE-2022-48868

Orta

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: dmaengine: idxd: workqueue etkinleştirilemediğinde probe işleminin başarısız olmasına izin verin workqueue, uygun sürücü yüklendiğinde etkinleştirilir ve sürücü kaldırıldığında devre dışı bırakılır. Sürücü kaldırıldığında, workqueue'nun başarıyla etkinleştirildiği varsayılır ve workqueue etkinleştirme sırasında yapılan tahsislerin serbest bırakılması işlemine geçilir. workqueue etkinleştirme sırasındaki hata, sürücünün yüklenmesini engellemez. Bunun nedeni, drv_enable_wq() içindeki hata yolunun, hata yolu sırasında ikinci bir hatayla karşılaşılmadığı sürece başarı döndürmesidir. Başarı döndürülerek, workqueue etkinleştirilemese bile sürücünün yüklenmesi mümkün hale gelir ve sürücü kaldırma işlemi sırasında mevcut olmayan tahsislerin serbest bırakılması denenir. Sorunlu akışlara bazı örnekler: (a) idxd_dmaengine_drv_probe() -> drv_enable_wq() -> idxd_wq_request_irq(): Yukarıdaki akışta, idxd_wq_request_irq() başarısız olursa, hata çıkış yolunda idxd_wq_unmap_portal() çağrılır ancak idxd_wq_disable() başarılı olduğu için drv_enable_wq() 0 döndürür. Böylece sürücü başarıyla yüklenmiş olur. idxd_dmaengine_drv_remove()->drv_disable_wq()->idxd_wq_unmap_portal() Sürücü kaldırılırken yukarıdaki akış, aygıt kaynağı drv_enable_wq() hata yolu sırasında zaten kaldırıldığı için devm_iounmap() içinde WARN tetikler. (b) idxd_dmaengine_drv_probe() -> drv_enable_wq() -> idxd_wq_request_irq(): Yukarıdaki akışta, idxd_wq_request_irq() başarısız olursa, percpu sayacını başlatmak için idxd_wq_init_percpu_ref() asla çağrılmaz; buna rağmen drv_enable_wq() 0 döndürdüğü için sürücü başarıyla yüklenir. idxd_dmaengine_drv_remove()->__idxd_wq_quiesce()->percpu_ref_kill(): Sürücü kaldırılırken yukarıdaki akış, başlatılmamış percpu referansının başlangıç referansını düşürmeye çalışırken bir BUG tetikler: BUG: kernel NULL pointer dereference, address: 0000000000000010 drv_enable_wq() hata yolu, workqueue etkinleştirmenin başarısız olduğunu belirten orijinal hatayı döndürecek şekilde düzeltilmiştir. Bu, bir hata ile karşılaşıldığında probe işleminin başarısız olmasını sağlar ve sürücü kaldırma yollarının yalnızca workqueue başarıyla etkinleştirildiğinde denenmesini garanti eder.

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın21 Ağu 2024
İlk görülme21 Ağu 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.15.90, 6.1.8 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.15 ≤ v < 5.15.90, 5.16 ≤ v < 6.1.85.15.90, 6.1.8

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.

Intelligence 360 paketinde

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.

CVE-2022-48868 · Linux Kernel · Dark Radar