В ядре Linux устранена следующая уязвимость:
iommu/amd: установите устройство PCI после обработки ошибок PPR.
iommu_call_iopf_notifier() ищет запрашивающую сторону с помощью
pci_get_domain_bus_and_slot(), который возвращает устройство PCI с его
счетчик ссылок увеличился. Ни успешный путь iommu_report_device_fault(), ни прерывание
path отбрасывает эту ссылку, поэтому каждый обработанный запрос PPR пропускает PCI
ссылка на устройство. Это то же правило владения, которое было исправлено для старой версии iommu_v2.
Путь ppr_notifier() по коммиту 6cf0981c2233 («iommu/amd: исправить устройство PCI
утечка счетчика ссылок в ppr_notifier()"), но iommu_call_iopf_notifier() была
добавлен позже как отдельный путь уведомления PPR/IOPF. Удалите ссылку на устройство PCI после обработки записи PPR.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: iommu/amd: Put PCI device after handling PPR faults iommu_call_iopf_notifier() looks up the requester with pci_get_domain_bus_and_slot(), which returns a PCI device with its reference count incremented. Neither the successful iommu_report_device_fault() path nor the abort path drops that reference, so every handled PPR request leaks a PCI device reference. This is the same ownership rule that was fixed for the old iommu_v2 ppr_notifier() path by commit 6cf0981c2233 ("iommu/amd: Fix pci device refcount leak in ppr_notifier()"), but iommu_call_iopf_notifier() was added later as a separate PPR/IOPF notifier path. Drop the PCI device reference after handling the PPR entry.