CVE-2026-89795 in Linux
Tóm tắt
Bởi VulDB • 16/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
PCI: Cho phép các khe PCI theo từng hàm để sửa lỗi reset khe trên s390
Trên các hệ thống s390 sử dụng hypervisor ở mức máy (machine level), các thiết bị PCI luôn được truy cập thông qua một dạng chuyển tiếp PCI (PCI pass-through) hoạt động cơ bản dựa trên độ phân giải theo từng hàm PCI. Điều này cũng được phản ánh trong trình điều khiển hotplug PCI của s390, tạo ra các khe hotplug cho các hàm PCI riêng lẻ. Hàm reset_slot() của nó, vốn là một wrapper cho zpci_hot_reset_device(), do đó cũng thực hiện việc reset các hàm riêng lẻ.
Hiện tại, pci_create_slot() gán cùng một đối tượng pci_slot cho các thiết bị đa chức năng (multifunction devices). Cách tiếp cận này hoạt động tốt trên các hệ thống s390 chỉ expose các hàm ảo dưới dạng các miền PCI (PCI domains) riêng biệt cho hệ điều hành. Kể từ commit 44510d6fa0c0 ("s390/pci: Handling multifunctions"), s390 hỗ trợ việc expose cấu trúc topology của các thiết bị PCI đa chức năng bằng cách nhóm chúng trong một miền PCI chung. Điều này tạo ra vấn đề khi reset một hàm thông qua giao diện slot_reset() của trình điều khiển hotplug.
Khi cố gắng reset một hàm thông qua trình điều khiển hotplug, việc gán khe chia sẻ (shared slot assignment) gây ra lỗi reset sai hàm thay vì hàm dự định. Nó cũng gây rò rỉ bộ nhớ do chúng ta tạo đối tượng pci_slot cho hàm nhưng không giải phóng đúng cách nó trong pci_slot_release().
Thêm một cờ cho struct pci_slot để cho phép các khe PCI theo từng hàm dành cho các hàm được quản lý thông qua hypervisor, vốn expose các hàm PCI riêng lẻ đồng thời duy trì cấu trúc topology. Vì chúng ta có thể sử dụng tất cả 8 bit cho 'số' khe (đối với thiết bị ARI), hãy thay đổi kiểu dữ liệu u16 của 'số' khe để tính đến các giá trị đặc biệt PCI_SLOT_PLACEHOLDER và PCI_SLOT_ALL_DEVICES.
If you want to get best quality of vulnerability data, you may have to visit VulDB.