CVE-2025-38169
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP
On system with SME, a thread's kernel FPSIMD state may be erroneously clobbered during a context switch immediately after that state is restored. Systems without SME are unaffected.
If the CPU happens to be in streaming SVE mode before a context switch to a thread with kernel FPSIMD state, fpsimd_thread_switch() will restore the kernel FPSIMD state using fpsimd_load_kernel_state() while the CPU is still in streaming SVE mode. When fpsimd_thread_switch() subsequently calls fpsimd_flush_cpu_state(), this will execute an SMSTOP, causing an exit from streaming SVE mode. The exit from streaming SVE mode will cause the hardware to reset a number of FPSIMD/SVE/SME registers, clobbering the FPSIMD state.
Fix this by calling fpsimd_flush_cpu_state() before restoring the kernel FPSIMD state.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | e92bee9f861b466c676f0200be3e46af7bc4ac6b < 55d52af498daea75aa03ba9b7e444c8ae495ac20 | affected |
| Linux | Linux | e92bee9f861b466c676f0200be3e46af7bc4ac6b < a305821f597ec943849d3e53924adb88c61ed682 | affected |
| Linux | Linux | e92bee9f861b466c676f0200be3e46af7bc4ac6b < 01098d893fa8a6edb2b56e178b798e3e6b674f02 | affected |
| Linux | Linux | e003c485ac82a9f8de4204912ed059ac6dd4257c | affected |
| Linux | Linux | 25b90cd122d546823da90b916f7c3289dfe83a99 | affected |
| Linux | Linux | 6.8.12 < 6.9 | affected |
| Linux | Linux | 6.9.3 < 6.10 | affected |
| Linux | Linux | 6.10 | affected |
| Linux | Linux | 0 < 6.10 | unaffected |
| Linux | Linux | 6.12.34 <= 6.12.* | unaffected |
| Linux | Linux | 6.15.3 <= 6.15.* | unaffected |
| Linux | Linux | 6.16 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/55d52af498daea75aa03ba9b7e444c8ae495ac20
- https://git.kernel.org/stable/c/a305821f597ec943849d3e53924adb88c61ed682
- https://git.kernel.org/stable/c/01098d893fa8a6edb2b56e178b798e3e6b674f02
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.