CVE-2026-64071
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: nvme-pci: nvme_free_host_mem() fonksiyonundaki serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi nvme_free_host_mem(), dev->hmb_sgt'yi dma_free_noncontiguous() aracılığıyla serbest bırakır ancak sonrasında işaretçiyi asla temizlemez. Bu durum, aynı hata yolunda nvme_free_host_mem() iki kez çağrılırsa bir serbest bırakıldıktan sonra kullanım (use-after-free) sorununa yol açar. Bu durum, nvme_probe() sırasında nvme_setup_host_mem() HMB tahsisinde başarılı olduğunda (dev->hmb_sgt ayarlanırken) ancak nvme_set_host_mem() bir G/Ç hatası ile başarısız olduğunda meydana gelebilir: nvme_setup_host_mem() nvme_alloc_host_mem_single() -> dev->hmb_sgt değerini ayarlar nvme_set_host_mem() -> -EIO ile başarısız olur nvme_free_host_mem() -> hmb_sgt'yi serbest bırakır ancak NULL yapmaz error döndürür nvme_probe() hata yolu: nvme_free_host_mem() -> dev->hmb_sgt güncelliğini yitirmiştir, serbest bırakıldıktan sonra kullanım (use-after-free) İkinci çağrı, serbest bırakılan sgt'nin referansını çözer ve sgt->sgl->dma_address kısmına eriştiğinde (destekleyici bellek serbest bırakılmış ve sıfırlanmıştır) iommu_dma_free_noncontiguous() içinde bir NULL işaretçi referansı oluşmasına neden olur. Bu durum, PCIe bağlantı kararsızlığı nedeniyle HMB kurulumu sırasında cihazın aralıklı olarak G/Ç hataları döndürdüğü Thunderbolt bağlantılı NVMe cihazlarında (örneğin, Dell WD22TB4 dock arkasındaki OWC Envoy Express) yeniden üretilebilir. BUG: kernel NULL pointer dereference, address: 0000000000000010 RIP: 0010:iommu_dma_free_noncontiguous+0x22/0x80 Call Trace: <TASK> dma_free_noncontiguous+0x3b/0x130 nvme_free_host_mem+0x30/0xf0 [nvme] nvme_probe.cold+0xcc/0x275 [nvme] local_pci_probe+0x43/0xa0 pci_device_probe+0xeea/0x290 really_probe+0xf9/0x3b0 __driver_probe_device+0x8b/0x170 driver_probe_device+0x24/0xd0 __driver_attach_async_helper+0x6b/0x110 async_run_entry_fn+0x37/0x170 process_one_work+0x1ac/0x3d0 worker_thread+0x1b8/0x360 kthread+0xf7/0x130 ret_from_fork+0x2d8/0x3a0 ret_from_fork_asm+0x1a/0x30 </TASK> Bu sorun, dev->hmb_sgt serbest bırakıldıktan sonra NULL olarak ayarlanarak düzeltilmiştir; böylece ikinci çağrı, halihazırda temizlenmiş durumu güvenli bir şekilde yöneten çoklu tanımlayıcı yolunu izler.
Nasıl düzeltilir
- linux linux_kernel6.18.34, 7.0.11 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.13 ≤ v < 6.18.34, 6.19 ≤ v < 7.0.11, 7.1 | 6.18.34, 7.0.11 |
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.