Subject: CVE-2024-40984: ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

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

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

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

ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Undo the modifications made in commit d410ee5109a1 ("ACPICA: avoid
"Info: mapping multiple BARs. Your kernel is fine.""). The initial
purpose of this commit was to stop memory mappings for operation
regions from overlapping page boundaries, as it can trigger warnings
if different page attributes are present.

However, it was found that when this situation arises, mapping
continues until the boundary's end, but there is still an attempt to
read/write the entire length of the map, leading to a NULL pointer
deference. For example, if a four-byte mapping request is made but
only one byte is mapped because it hits the current page boundary's
end, a four-byte read/write attempt is still made, resulting in a NULL
pointer deference.

Instead, map the entire length, as the ACPI specification does not
mandate that it must be within the same page boundary. It is
permissible for it to be mapped across different regions.

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

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

	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 4.19.317 with commit 435ecc978c3d
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 5.4.279 with commit ae465109d82f
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 5.10.221 with commit 6eca23100e90
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 5.15.162 with commit dc5017c57f5e
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 6.1.96 with commit ddc1f5f12447
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 6.6.36 with commit 434c6b924e1f
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 6.9.7 with commit e21a4c9129c7
	Issue introduced in 2.6.32 with commit d410ee5109a1 and fixed in 6.10 with commit a83e1385b780

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-40984
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:
	drivers/acpi/acpica/exregion.c

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/435ecc978c3d5d0c4e172ec5b956dc1904061d98
	https://git.kernel.org/stable/c/ae465109d82f4fb03c5adbe85f2d6a6a3d59124c
	https://git.kernel.org/stable/c/6eca23100e9030725f69c1babacd58803f29ec8d
	https://git.kernel.org/stable/c/dc5017c57f5eee80020c73ff8b67ba7f9fd08b1f
	https://git.kernel.org/stable/c/ddc1f5f124479360a1fd43f73be950781d172239
	https://git.kernel.org/stable/c/434c6b924e1f4c219aab2d9e05fe79c5364e37d3
	https://git.kernel.org/stable/c/e21a4c9129c72fa54dd00f5ebf71219b41d43c04
	https://git.kernel.org/stable/c/a83e1385b780d41307433ddbc86e3c528db031f0