CVE-2024-26646: thermal: intel: hfi: Add syscore callbacks for system-wide PM
In the Linux kernel, the following vulnerability has been resolved:
thermal: intel: hfi: Add syscore callbacks for system-wide PM
The kernel allocates a memory buffer and provides its location to the hardware, which uses it to update the HFI table. This allocation occurs during boot and remains constant throughout runtime.
When resuming from hibernation, the restore kernel allocates a second memory buffer and reprograms the HFI hardware with the new location as part of a normal boot. The location of the second memory buffer may differ from the one allocated by the image kernel.
When the restore kernel transfers control to the image kernel, its HFI buffer becomes invalid, potentially leading to memory corruption if the hardware writes to it (the hardware continues to use the buffer from the restore kernel).
It is also possible that the hardware "forgets" the address of the memory buffer when resuming from "deep" suspend. Memory corruption may also occur in such a scenario.
To prevent the described memory corruption, disable HFI when preparing to suspend or hibernate. Enable it when resuming.
Add syscore callbacks to handle the package of the boot CPU (packages of non-boot CPUs are handled via CPU offline). Syscore ops always run on the boot CPU. Additionally, HFI only needs to be disabled during "deep" suspend and hibernation. Syscore ops only run in these cases.
[ rjw: Comment adjustment, subject and changelog edits ]
Other sources
In the Linux kernel, the following vulnerability has been resolved:
thermal: intel: hfi: Add syscore callbacks for system-wide PM
The Linux kernel CVE team has assigned CVE-2024-26646 to this issue.
Upstream advisory: https://lore.kernel.org/linux-cve-announce/20240326175007.1388794-14-lee@kernel.org/T
— Red Hat
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
redhat/kernelto a version that resolves this vulnerability.Fixed in 6.1.76 - Upgrade
Upgrade
redhat/kernelto a version that resolves this vulnerability.Fixed in 6.6.15 - Upgrade
Upgrade
redhat/kernelto a version that resolves this vulnerability.Fixed in 6.7.3 - Upgrade
Upgrade
redhat/kernelto a version that resolves this vulnerability.Fixed in 6.8 - Configuration
Apply the kernel change to disable HFI when preparing to suspend or hibernate (including “deep” suspend and hibernation), and re-enable HFI when resuming. The fix adds syscore callbacks so the required syscore ops run on the boot CPU and only in these PM cases to prevent memory corruption (CVE-2024-26646).
Linux kernel (thermal: intel: hfi) HFI state during system-wide power management = disabled during suspend/hibernate; enabled on resume
Event History
Frequently Asked Questions
What is the severity of CVE-2024-26646?
The severity of CVE-2024-26646 is currently classified as moderate.
How do I fix CVE-2024-26646?
To fix CVE-2024-26646, update to the appropriate kernel version, ensuring it is patched to 6.1.76, 6.6.15, 6.7.3, or 6.8 for Red Hat or to 6.1.123-1, 6.1.119-1, 6.12.10-1, or 6.12.11-1 under Debian.
Which Linux kernel versions are affected by CVE-2024-26646?
CVE-2024-26646 affects various kernel versions, specifically those prior to 6.1.76, 6.6.15, 6.7.3, 6.8 for Red Hat, and up to 5.10.226-1 for Debian.
Is CVE-2024-26646 exploited in the wild?
As of now, there are no confirmed reports of CVE-2024-26646 being actively exploited in the wild.
What is the nature of the vulnerability CVE-2024-26646?
CVE-2024-26646 is a vulnerability in the Linux kernel related to improper memory allocation for hardware communication.