Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: iommu/sva: Set handle->dev before the SVA handle is visible iommu_attach_device_pasid() installs the new SVA attach handle in the group PASID lookup before iommu_sva_bind_device() returns. A concurrent bind can therefore find and reuse the same handle after iommu_sva_lock is dropped. handle->dev was initialized after dropping iommu_sva_lock. This leaves a window where a racing bind can return a handle whose dev pointer is still NULL. A subsequent iommu_sva_unbind_device() can then dereference it via handle->dev->iommu_group. Initialize handle->dev before releasing iommu_sva_lock so any visible SVA handle is fully initialized.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected be51b1d6bbff48c7d1943a8ff1e5a55777807f6e before c4c71368bc5c5b3840590d39b4cfa12d733cadf4; affected be51b1d6bbff48c7d1943a8ff1e5a55777807f6e before bcffb1c75da8fc9d51168ff9f09d471c26507912; affected be51b1d6bbff48c7d1943a8ff1e5a55777807f6e before 968e9a1f71140c86dc4092f6b361e997923f3813; affected be51b1d6bbff48c7d1943a8ff1e5a55777807f6e before 37a96a30617a4c96f048a5874c00509bc4fe4d85; affected be51b1d6bbff48c7d1943a8ff1e5a55777807f6e before 530f8f9c3546cb3ebee1b135375aaee08a073ebb |
| Linux / Linux | affected 6.2; unaffected 0 before 6.2; unaffected 6.6.160 through 6.6.*; unaffected 6.12.109 through 6.12.*; unaffected 6.18.50 through 6.18.*; unaffected 7.2.4 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/c4c71368bc5c5b3840590d39b4cfa12d733cadf4
- https://git.kernel.org/stable/c/bcffb1c75da8fc9d51168ff9f09d471c26507912
- https://git.kernel.org/stable/c/968e9a1f71140c86dc4092f6b361e997923f3813
- https://git.kernel.org/stable/c/37a96a30617a4c96f048a5874c00509bc4fe4d85
- https://git.kernel.org/stable/c/530f8f9c3546cb3ebee1b135375aaee08a073ebb