CVE-2026-53283
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: iommu/amd: __rlookup_amd_iommu() fonksiyonunda devid sınır kontrolü iommu_device_register(), bus_for_each_dev() aracılığıyla PCI veri yolundaki her cihazı tarar ve her biri için amd_iommu_probe_device() fonksiyonunu çağırır. Satır içi (inlined) check_device() yolu, cihazın sbdf değerini hesaplar, sahibi olan IOMMU'yu bulmak için rlookup_amd_iommu() fonksiyonunu çağırır ve ancak bundan sonra devid <= pci_seg->last_bdf kontrolünü gerçekleştirir. __rlookup_amd_iommu(), kendi bünyesinde herhangi bir sınır kontrolü yapmadan rlookup_table[devid] indekslemesini yapar; bu nedenle, BDF değeri IVRS tarafından tanımlanmamış bir PCI cihazı için, çağıran tarafın sınır kontrolü çalışmadan önce arama işlemi tahsis edilen alanın sonunun ötesinden okuma yapar. Bu durum, e874c666b15b ("iommu/amd: Change rlookup, irq_lookup, and alias to use kvalloc()") commit'inden önce zararsızdı: tablo sıfırlanmış bir sayfa düzeni tahsisiydi, dolayısıyla aşırı okuma NULL döndürüyordu ve çağıran tarafın NULL kontrolü cihazı atlıyordu. Bu commit'ten sonra tablo sıkı bir kvcalloc() haline geldi ve aşırı okuma bitişik slab içeriklerini döndürmeye başladı; check_device() daha sonra bunları bir struct amd_iommu * olarak çözümlüyor (dereference), bu da önyükleme sırasında bir GPF'ye neden oluyordu. Sanal IVRS'nin yalnızca dört TPU uç noktasını (00:04.0-07.0) tanımladığı Google Compute Engine ct6e VM'lerinde gözlemlenmiştir; 00:08.0 adresindeki gVNIC (devid 0x40), 456 baytlık tahsisatın 56 bayt ötesine, bitişik kmalloc-512 slab nesnesinin içine indeksleme yapmaktadır: pci 0000:00:04.0: Adding to iommu group 0 pci 0000:00:05.0: Adding to iommu group 1 pci 0000:00:06.0: Adding to iommu group 2 pci 0000:00:07.0: Adding to iommu group 3 Oops: general protection fault, probably for non-canonical address 0x3a64695f78746382: 0000 [#1] SMP NOPTI CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.22 #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/06/2025 RIP: 0010:amd_iommu_probe_device+0x54/0x3a0 Call Trace: __iommu_probe_device+0x107/0x520 probe_iommu_group+0x29/0x50 bus_for_each_dev+0x7e/0xe0 iommu_device_register+0xc9/0x240 iommu_go_to_state+0x9c0/0x1c60 amd_iommu_init+0x14/0x40 pci_iommu_init+0x16/0x60 do_one_initcall+0x47/0x2f0 __rlookup_amd_iommu() içindeki dizi erişimi korumaya alınmıştır. Düzeltme 6.18.22 sürümüne uygulandığında, 00:08.0 adresindeki gVNIC sorunsuz şekilde atlanır ve VM önyükleme yapar.
Nasıl düzeltilir
- linux linux_kernel6.18.33, 7.0.10 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.16 ≤ v < 6.18.33, 6.19 ≤ v < 7.0.10, 7.1 | 6.18.33, 7.0.10 |
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.