CVE-2026-43161
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: iommu/vt-d: Scalable mode olmadan əlçatmaz PCIe cihazı üçün dev-iotlb flush prosesini ötürün ATS aktiv edilmiş və istifadəçi sahəsinə (məsələn, QEMU, DPDK) ötürülmüş PCIe son nöqtələri, bağlantıları qopduqda (qəfil çıxarılma və ya bağlantı xətası səbəbindən) host sistemini tamamilə dondura (hard-lock) bilər. 4fc82cd907ac nömrəli commit ("iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected"), ATS etibarsızlaşdırılmasının yalnız cihaz təhlükəsiz şəkildə çıxarıldıqda ötürülməsini təmin etmək üçün devtlb_invalidation_with_pasid() funksiyasına pci_dev_is_disconnected() əlavə edir, lakin bu, yalnız Intel IOMMU scalable mode aktiv olduqda tətbiq edilir. Scalable mode deaktiv olduqda və ya dəstəklənilmədikdə, PCIe son nöqtəsinin bağlantısı qopduqda sistem donur, çünki Intel IOMMU tamamlana bilməyən ATS etibarsızlaşdırılmasını sonsuz müddət gözləyir. Call Trace: qi_submit_sync qi_flush_dev_iotlb __context_flush_dev_iotlb.part.0 domain_context_clear_one_cb pci_for_each_dma_alias device_block_translation blocking_domain_attach_dev iommu_deinit_device __iommu_group_remove_device iommu_release_device iommu_bus_notifier blocking_notifier_call_chain bus_notify device_del pci_remove_bus_device pci_stop_and_remove_bus_device pciehp_unconfigure_device pciehp_disable_slot pciehp_handle_presence_or_link_change pciehp_ist 81e921fd3216 nömrəli commit ("iommu/vt-d: Fix NULL domain on device release"), intel_iommu_release_device() funksiyasına qi_flush_dev_iotlb() çağırışını edən intel_pasid_teardown_sm_context() əlavə edir ki, bu da PCIe son nöqtəsinin bağlantısı qopduqda sistemi dondura bilər. Call Trace: qi_submit_sync qi_flush_dev_iotlb __context_flush_dev_iotlb.part.0 intel_context_flush_no_pasid device_pasid_table_teardown pci_pasid_table_teardown pci_for_each_dma_alias intel_pasid_teardown_sm_context intel_iommu_release_device iommu_deinit_device __iommu_group_remove_device iommu_release_device iommu_bus_notifier blocking_notifier_call_chain bus_notify device_del pci_remove_bus_device pci_stop_and_remove_bus_device pciehp_unconfigure_device pciehp_disable_slot pciehp_handle_presence_or_link_change pciehp_ist Bəzən son nöqtə link-down hadisəsi olmadan (məsələn, bağlantı xətası səbəbindən) əlaqəni itirir; bu zaman prosesin sonlandırılması (virsh destroy) hostu dondurur. Call Trace: qi_submit_sync qi_flush_dev_iotlb __context_flush_dev_iotlb.part.0 domain_context_clear_one_cb pci_for_each_dma_alias device_block_translation blocking_domain_attach_dev __iommu_attach_device __iommu_device_set_domain __iommu_group_set_domain_internal iommu_detach_group vfio_iommu_type1_detach_group vfio_group_detach_container vfio_group_fops_release __fput pci_dev_is_disconnected() yalnız təhlükəsiz çıxarma yollarını əhatə edir; pci_device_is_present() isə vendor/device ID-lərini oxuyaraq əlçatanlığı yoxlayır və daxili olaraq pci_dev_is_disconnected() funksiyasını çağırır. ConnectX-5 (8 GT/s, x2) üzərində bunun xərci ~70 µs təşkil edir. __context_flush_dev_iotlb() yalnız {attach,release}_dev yollarında (hot olmayan) çağırıldığı üçün, əlçatmaz cihazları ötürmək və sistemin donmasının qarşısını almaq məqsədilə ora pci_device_is_present() əlavə edildi.
Necə düzəltmək olar
- linux linux_kernel5.13, 5.14, 6.12.77, 6.18.17, 6.19.6 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 | 5.12.19 ≤ v < 5.13, 5.13.4 ≤ v < 5.14, 5.14.1 ≤ v < 6.12.77, 6.13 ≤ v < 6.18.17, 6.19 ≤ v < 6.19.6, 5.14 | 5.13, 5.14, 6.12.77, 6.18.17, 6.19.6 |
| microsoft azl3_kernel_6.6.143.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.144.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.150.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.152.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.137.1-2 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.138.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.139.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.141.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.145.2-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralıq göstərilməyib | — |
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.