iommu: Return right value in iommu_sva_bind_device()
CVE-2024-40945
What is CVE-2024-40945?
In the Linux kernel, the following vulnerability has been resolved:
iommu: Return right value in iommu_sva_bind_device()
iommu_sva_bind_device() should return either a sva bond handle or an ERR_PTR value in error cases. Existing drivers (idxd and uacce) only check the return value with IS_ERR(). This could potentially lead to a kernel NULL pointer dereference issue if the function returns NULL instead of an error pointer.
In reality, this doesn't cause any problems because iommu_sva_bind_device() only returns NULL when the kernel is not configured with CONFIG_IOMMU_SVA. In this case, iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_SVA) will return an error, and the device drivers won't call iommu_sva_bind_device() at all.
Affected Version(s)
Linux 26b25a2b98e45aeb40eedcedc586ad5034cbd984 < 700f564758882db7c039dfba9443fe762561a3f8
Linux 26b25a2b98e45aeb40eedcedc586ad5034cbd984
Linux 26b25a2b98e45aeb40eedcedc586ad5034cbd984 < 2973b8e7d127754de9013177c41c0b5547406998