Subject: CVE-2024-35247: fpga: region: add owner module and take its refcount

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

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

In the Linux kernel, the following vulnerability has been resolved:

fpga: region: add owner module and take its refcount

The current implementation of the fpga region assumes that the low-level
module registers a driver for the parent device and uses its owner pointer
to take the module's refcount. This approach is problematic since it can
lead to a null pointer dereference while attempting to get the region
during programming if the parent device does not have a driver.

To address this problem, add a module owner pointer to the fpga_region
struct and use it to take the module's refcount. Modify the functions for
registering a region to take an additional owner module parameter and
rename them to avoid conflicts. Use the old function names for helper
macros that automatically set the module that registers the region as the
owner. This ensures compatibility with existing low-level control modules
and reduces the chances of registering a region without setting the owner.

Also, update the documentation to keep it consistent with the new interface
for registering an fpga region.

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

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

	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 5.10.219 with commit 26e6e25d742e
	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 5.15.161 with commit 9b4eee8572dc
	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 6.1.93 with commit 75a001914a8d
	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 6.6.33 with commit 4d7d12b643c0
	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 6.9.4 with commit 2279c09c3616
	Issue introduced in 4.10 with commit 0fa20cdfcc1f and fixed in 6.10 with commit b7c0e1ecee40

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-35247
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:
	Documentation/driver-api/fpga/fpga-region.rst
	drivers/fpga/fpga-region.c
	include/linux/fpga/fpga-region.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/26e6e25d742e29885cf44274fcf6b744366c4702
	https://git.kernel.org/stable/c/9b4eee8572dcf82b2ed17d9a328c7fb87df2f0e8
	https://git.kernel.org/stable/c/75a001914a8d2ccdcbe4b8cc7e94ac71d0e66093
	https://git.kernel.org/stable/c/4d7d12b643c00e7eea51b49a60a2ead182633ec8
	https://git.kernel.org/stable/c/2279c09c36165ccded4d506d11a7714e13b56019
	https://git.kernel.org/stable/c/b7c0e1ecee403a43abc89eb3e75672b01ff2ece9