Subject: CVE-2024-40945: iommu: Return right value in iommu_sva_bind_device()

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

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.

The Linux kernel CVE team has assigned CVE-2024-40945 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 5.4.279 with commit 700f56475888
	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 5.10.221 with commit cf34f8f66982
	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 5.15.162 with commit 2973b8e7d127
	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 6.6.35 with commit 7388ae6f26c0
	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 6.9.6 with commit 61a96da9649a
	Issue introduced in 5.2 with commit 26b25a2b98e4 and fixed in 6.10 with commit 89e8a2366e3b

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-40945
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	include/linux/iommu.h

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/700f564758882db7c039dfba9443fe762561a3f8
	https://git.kernel.org/stable/c/cf34f8f66982a36e5cba0d05781b21ec9606b91e
	https://git.kernel.org/stable/c/2973b8e7d127754de9013177c41c0b5547406998
	https://git.kernel.org/stable/c/7388ae6f26c0ba95f70cc96bf9c5d5cb06c908b6
	https://git.kernel.org/stable/c/61a96da9649a6b6a1a5d5bde9374b045fdb5c12e
	https://git.kernel.org/stable/c/89e8a2366e3bce584b6c01549d5019c5cda1205e