Subject: CVE-2024-46822: arm64: acpi: Harden get_cpu_for_acpi_id() against missing CPU entry

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

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

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

arm64: acpi: Harden get_cpu_for_acpi_id() against missing CPU entry

In a review discussion of the changes to support vCPU hotplug where
a check was added on the GICC being enabled if was online, it was
noted that there is need to map back to the cpu and use that to index
into a cpumask. As such, a valid ID is needed.

If an MPIDR check fails in acpi_map_gic_cpu_interface() it is possible
for the entry in cpu_madt_gicc[cpu] == NULL.  This function would
then cause a NULL pointer dereference.   Whilst a path to trigger
this has not been established, harden this caller against the
possibility.

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

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

	Fixed in 5.4.284 with commit f57769ff6fa7
	Fixed in 5.10.226 with commit 4c3b21204abb
	Fixed in 5.15.167 with commit 945be49f4e83
	Fixed in 6.1.110 with commit 40cae0df42e5
	Fixed in 6.6.51 with commit 62ca6d3a905b
	Fixed in 6.10.10 with commit bc7fbb37e3d2
	Fixed in 6.11 with commit 2488444274c7

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-46822
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:
	arch/arm64/include/asm/acpi.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/f57769ff6fa7f97f1296965f20e8a2bb3ee9fd0f
	https://git.kernel.org/stable/c/4c3b21204abb4fa3ab310fbbb5cf7f0e85f3a1bc
	https://git.kernel.org/stable/c/945be49f4e832a9184c313fdf8917475438a795b
	https://git.kernel.org/stable/c/40cae0df42e5e7f7a1c0f32deed9c4027c1ba94e
	https://git.kernel.org/stable/c/62ca6d3a905b4c40cd942f3cc645a6718f8bc7e7
	https://git.kernel.org/stable/c/bc7fbb37e3d2df59336eadbd6a56be632e3c7df7
	https://git.kernel.org/stable/c/2488444274c70038eb6b686cba5f1ce48ebb9cdd