Vulnerability Details : CVE-2024-35801
In the Linux kernel, the following vulnerability has been resolved:
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD
Commit 672365477ae8 ("x86/fpu: Update XFD state where required") and
commit 8bf26758ca96 ("x86/fpu: Add XFD state to fpstate") introduced a
per CPU variable xfd_state to keep the MSR_IA32_XFD value cached, in
order to avoid unnecessary writes to the MSR.
On CPU hotplug MSR_IA32_XFD is reset to the init_fpstate.xfd, which
wipes out any stale state. But the per CPU cached xfd value is not
reset, which brings them out of sync.
As a consequence a subsequent xfd_update_state() might fail to update
the MSR which in turn can result in XRSTOR raising a #NM in kernel
space, which crashes the kernel.
To fix this, introduce xfd_set_state() to write xfd_state together
with MSR_IA32_XFD, and use it in all places that set MSR_IA32_XFD.
Products affected by CVE-2024-35801
Please log in to view affected product information.
Exploit prediction scoring system (EPSS) score for CVE-2024-35801
0.07%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 17 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2024-35801
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
7.8
|
HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
1.8
|
5.9
|
134c704f-9b21-4f2e-91b3-4a467353bcc0 | 2024-07-03 |
CWE ids for CVE-2024-35801
-
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.Assigned by: 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)
References for CVE-2024-35801
-
https://git.kernel.org/stable/c/21c7c00dae55cb0e3810d5f9506b58f68475d41d
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/92b0f04e937665bde5768f3fcc622dcce44413d8
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/10e4b5166df9ff7a2d5316138ca668b42d004422
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/b61e3b7055ac6edee4be071c52f48c26472d2624
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD - kernel/git/stable/linux.git - Linux kernel stable tree
-
https://git.kernel.org/stable/c/1acbca933313aa866e39996904c9aca4d435c4cd
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD - kernel/git/stable/linux.git - Linux kernel stable tree
Jump to