Description
In the Linux kernel, the following vulnerability has been resolved: iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace iommufd_hwpt_replace_device() calls: iommufd_auto_response_faults(hwpt, old_handle); passing the *new* hwpt together with the handle of the device's *old* domain. This should be a parameter mismatch: 1. Semantically, iommufd_auto_response_faults(x, handle) scans x->fault's deliver list and response xarray for groups matching "handle". A group is queued under the hwpt that was attached at fault-delivery time. old_handle is fetched *before* the domain switch, so its group lives on old->fault, not on the new hwpt->fault. 2. Historically, the first argument was "old". The routine was introduced by commit b7d8833677ba ("iommufd: Fault-capable hwpt attach/detach/replace") as __fault_domain_replace_dev() in fault.c, correctly calling iommufd_auto_response_faults(old, curr). Commit fb21b1568ada ("iommufd: Make attach_handle generic than fault specific") moved this into iommufd_hwpt_replace_device() in device.c and swapped it to "hwpt". This should be a refactor regression, not an intentional change. Fix this by passing "old" instead.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
6d11543bf37abdf60b8e6022a62fccfb82a5fe2e to < adb87155b67f9759ff010c0a99559f5bffa45dcfaffectedfb21b1568adaa76af7a8c853f37c60fba8b28661 to < 564ac339c0f8bada4e77a57a92bab9d3df635e07affectedfb21b1568adaa76af7a8c853f37c60fba8b28661 to < 8eb077025279304268bd58657f0af3d388822b21affectedfb21b1568adaa76af7a8c853f37c60fba8b28661 to < ba5c0f28a26e7d9be1e0997f8920dd638e2782fdaffected1e0216b6a58c79b5ee91c78706d5f560e4d1f56faffected4b23c4b991eb90cc7bca42e9f81142feedd4bb56affected6.12.24 to < 6.12.105affected6.13.12 to < 6.14affected6.14.3 to < 6.15affected
Linux Linux
Default version status: affected
6.15affected0 to < 6.15unaffected6.12.105 to ≤ 6.12.*unaffected6.18.44 to ≤ 6.18.*unaffected7.1.8 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected