CVE-2026-31561 Details
Description
In the Linux kernel, the following vulnerability has been resolved: x86/cpu: Remove X86_CR4_FRED from the CR4 pinned bits mask Commit in Fixes added the FRED CR4 bit to the CR4 pinned bits mask so that whenever something else modifies CR4, that bit remains set. Which in itself is a perfectly fine idea. However, there's an issue when during boot FRED is initialized: first on the BSP and later on the APs. Thus, there's a window in time when exceptions cannot be handled. This becomes particularly nasty when running as SEV-{ES,SNP} or TDX guests which, when they manage to trigger exceptions during that short window described above, triple fault due to FRED MSRs not being set up yet. See Link tag below for a much more detailed explanation of the situation. So, as a result, the commit in that Link URL tried to address this shortcoming by temporarily disabling CR4 pinning when an AP is not online yet. However, that is a problem in itself because in this case, an attack on the kernel needs to only modify the online bit - a single bit in RW memory - and then disable CR4 pinning and then disable SM*P, leading to more and worse things to happen to the system. So, instead, remove the FRED bit from the CR4 pinning mask, thus obviating the need to temporarily disable CR4 pinning. If someone manages to disable FRED when poking at CR4, then idt_invalidate() would make sure the system would crash'n'burn on the first exception triggered, which is a much better outcome security-wise.
A vulnerability exists in the Linux kernel's handling of the CR4 FRED bit on x86 CPUs, specifically in versions 6.12 and later. The issue arises because the FRED bit is initialized at boot on the Bootstrap Processor (BSP) before being set on Application Processors (APs), creating a window where exceptions cannot be managed. This problem is exacerbated for guests using AMD's SEV-ES, SEV-SNP, or Intel's TDX, as they may trigger exceptions during this unhandled period, leading to a triple fault. The vulnerability allows for manipulation of the online bit in writable memory, which can disable CR4 pinning and certain security features, causing further system instability.
Users can upgrade to a patched version of the Linux kernel that removes the FRED bit from the CR4 pinning mask, eliminating the vulnerability. The latest stable version can be downloaded from the official Linux kernel website.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/00d956dafa76f86a73424fe5cce3d604a8be2e4b | kernel.org | Patch |
| https://git.kernel.org/stable/c/411df123c017169922cc767affce76282b8e6c85 | kernel.org | Patch |
| https://git.kernel.org/stable/c/a6e14114684d2324e5401617d6d01acb4a4e0e22 | kernel.org | Patch |
| https://git.kernel.org/stable/c/d7853d9fe94abf43b46c57b0b7f8418198b7615a | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| NVD-CWE-noinfo | Insufficient Information to Classify Weakness | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 6.9.1, < 6.12.80 >= 6.13, < 6.18.21 >= 6.19, < 6.19.11 6.9 - 7.0 rc1 7.0 rc2 7.0 rc3 7.0 rc4 7.0 rc5 7.0 rc6 7.0 rc7 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| Apr 27, 2026 | Initial Analysis | [email protected] |
| Apr 24, 2026 | New CVE Received | kernel.org |