CVE-2026-53283
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: iommu/amd: __rlookup_amd_iommu() funksiyasında devid üçün sərhəd yoxlaması iommu_device_register() funksiyası bus_for_each_dev() vasitəsilə PCI şinindəki hər bir cihazı nəzərdən keçirir və hər biri üçün amd_iommu_probe_device() funksiyasını çağırır. Inlined check_device() yolu cihazın sbdf-ni hesablayır, sahib olan IOMMU-nu tapmaq üçün rlookup_amd_iommu() funksiyasını çağırır və yalnız bundan sonra devid <= pci_seg->last_bdf şərtini yoxlayır. __rlookup_amd_iommu() funksiyası rlookup_table[devid] indeksləməsini öz daxilində heç bir sərhəd yoxlaması olmadan yerinə yetirir, buna görə də BDF-i IVRS tərəfindən təsvir edilməyən PCI cihazı üçün, çağıran tərəfin sərhəd yoxlaması işə düşməzdən əvvəl axtarış prosesi ayrılmış sahənin sonundan kənara oxuma aparır. Bu, e874c666b15b ("iommu/amd: Change rlookup, irq_lookup, and alias to use kvalloc()") commit-indən əvvəl zərərsiz idi: cədvəl sıfırlanmış səhifə nizamlı ayırmadır (page-order allocation), buna görə də həddindən artıq oxuma NULL qaytarırdı və çağıran tərəfin NULL yoxlaması cihazı ötürürdü. Həmin commit-dən sonra cədvəl sıx kvcalloc() olur və həddindən artıq oxuma bitişik slab məzmununu qaytarır, check_device() isə bunu struct amd_iommu * kimi istifadə edir ki, bu da yükləmə zamanı GPF-ə səbəb olur. Bu problem virtuallaşdırılmış IVRS-in yalnız dörd TPU endpoint-ini (00:04.0-07.0) təsvir etdiyi Google Compute Engine ct6e VM-lərində müşahidə edilmişdir; 00:08.0 ünvanındakı gVNIC (devid 0x40), 456 baytlıq ayırmadan 56 bayt kənara, bitişik kmalloc-512 slab obyektinə indeksləyir: 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() funksiyasındakı massiv girişinə mühafizə əlavə edildi. 6.18.22 versiyasına tətbiq olunan düzəlişlə 00:08.0 ünvanındakı gVNIC problemsiz şəkildə ötürülür və VM yüklənir.
Necə düzəltmək olar
- linux linux_kernel6.18.33, 7.0.10 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.16 ≤ v < 6.18.33, 6.19 ≤ v < 7.0.10, 7.1 | 6.18.33, 7.0.10 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.