CVE-2021-47226: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer Both Intel and AMD consider it to be architecturally valid for XRSTOR to fail with #PF but nonetheless change the register state. The actual conditions under which this might occur are unclear [1], but it seems plausible that this might be triggered if one sibling thread unmaps a page and invalidates the shared TLB while another sibling thread is executing XRSTOR on the page in question. __fpu__restore_sig() can execute XRSTOR while the hardware registers are preserved on behalf of a different victim task (using the fpu_fpregs_owner_ctx mechanism), and, in theory, XRSTOR could fail but modify the registers. If this happens, then there is a window in which __fpu__restore_sig() could schedule out and the victim task could schedule back in without reloading its own FPU registers. This would result in part of the FPU state that __fpu__restore_sig() was attempting to load leaking into the victim task's user-visible state. Invalidate preserved FPU registers on XRSTOR failure to prevent this situation from corrupting any state. [1] Frequent readers of the errata lists might imagine "complex microarchitectural conditions".
AI Analysis
Technical Summary
CVE-2021-47226 is a vulnerability in the Linux kernel related to the handling of the Floating Point Unit (FPU) state during the XRSTOR instruction execution on x86 architectures. XRSTOR is used to restore the FPU, MMX, SSE, and AVX register states from memory. The vulnerability arises because both Intel and AMD processors allow XRSTOR to fail with a page fault (#PF) but still partially modify the register state. This can occur under complex microarchitectural conditions, such as when one sibling thread unmaps a memory page and invalidates the shared Translation Lookaside Buffer (TLB) while another sibling thread is executing XRSTOR on that page. In the Linux kernel, the function __fpu__restore_sig() executes XRSTOR while preserving hardware registers on behalf of a different victim task using the fpu_fpregs_owner_ctx mechanism. If XRSTOR fails but modifies the registers, there is a window where the victim task could be scheduled back in without reloading its own FPU registers, causing leakage of partial FPU state from one task to another. This leakage could lead to corruption or unintended disclosure of sensitive data between processes. The patch invalidates preserved FPU registers upon XRSTOR failure to prevent this leakage and maintain process isolation. Although the exact conditions triggering this issue are unclear and considered rare, the vulnerability represents a subtle microarchitectural flaw that could undermine kernel-level task isolation on affected Linux systems running on Intel and AMD x86 processors.
Potential Impact
For European organizations, this vulnerability poses a risk primarily in multi-tenant environments such as cloud service providers, data centers, and virtualized infrastructures where multiple user processes or virtual machines share the same physical CPU cores. Leakage of FPU register state between tasks could potentially expose sensitive cryptographic keys, user data, or other confidential information processed in floating-point registers. This undermines confidentiality and integrity guarantees of the operating system's process isolation. Although exploitation requires specific timing and conditions, the impact could be significant in high-security environments such as financial institutions, government agencies, and critical infrastructure operators prevalent in Europe. Additionally, organizations relying on Linux-based servers for web hosting, container orchestration, or HPC workloads may face risks of cross-process data leakage. The vulnerability does not appear to cause denial of service or direct code execution but could facilitate side-channel attacks or information disclosure. Given the widespread use of Linux in European IT infrastructure, the potential impact is broad but focused on confidentiality breaches in multi-threaded or multi-process workloads.
Mitigation Recommendations
European organizations should prioritize applying the official Linux kernel patches that invalidate FPU registers upon XRSTOR failure as soon as they become available. Kernel updates should be tested and deployed promptly on all affected systems, especially those running on Intel and AMD x86 processors. In addition to patching, organizations should: 1) Review and harden multi-tenant environments by isolating critical workloads on dedicated physical cores or hosts to reduce sibling thread interference. 2) Employ kernel-level security modules and mandatory access controls (e.g., SELinux, AppArmor) to limit process privileges and reduce attack surface. 3) Monitor system logs and performance counters for unusual page faults or TLB invalidations that might indicate exploitation attempts. 4) For virtualized environments, ensure hypervisor and guest OS are updated to prevent cross-VM leakage. 5) Conduct security audits focusing on cryptographic key management to mitigate risks from potential leakage. These steps go beyond generic advice by focusing on the specific microarchitectural and kernel-level nature of the vulnerability.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain, Poland
CVE-2021-47226: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer Both Intel and AMD consider it to be architecturally valid for XRSTOR to fail with #PF but nonetheless change the register state. The actual conditions under which this might occur are unclear [1], but it seems plausible that this might be triggered if one sibling thread unmaps a page and invalidates the shared TLB while another sibling thread is executing XRSTOR on the page in question. __fpu__restore_sig() can execute XRSTOR while the hardware registers are preserved on behalf of a different victim task (using the fpu_fpregs_owner_ctx mechanism), and, in theory, XRSTOR could fail but modify the registers. If this happens, then there is a window in which __fpu__restore_sig() could schedule out and the victim task could schedule back in without reloading its own FPU registers. This would result in part of the FPU state that __fpu__restore_sig() was attempting to load leaking into the victim task's user-visible state. Invalidate preserved FPU registers on XRSTOR failure to prevent this situation from corrupting any state. [1] Frequent readers of the errata lists might imagine "complex microarchitectural conditions".
AI-Powered Analysis
Technical Analysis
CVE-2021-47226 is a vulnerability in the Linux kernel related to the handling of the Floating Point Unit (FPU) state during the XRSTOR instruction execution on x86 architectures. XRSTOR is used to restore the FPU, MMX, SSE, and AVX register states from memory. The vulnerability arises because both Intel and AMD processors allow XRSTOR to fail with a page fault (#PF) but still partially modify the register state. This can occur under complex microarchitectural conditions, such as when one sibling thread unmaps a memory page and invalidates the shared Translation Lookaside Buffer (TLB) while another sibling thread is executing XRSTOR on that page. In the Linux kernel, the function __fpu__restore_sig() executes XRSTOR while preserving hardware registers on behalf of a different victim task using the fpu_fpregs_owner_ctx mechanism. If XRSTOR fails but modifies the registers, there is a window where the victim task could be scheduled back in without reloading its own FPU registers, causing leakage of partial FPU state from one task to another. This leakage could lead to corruption or unintended disclosure of sensitive data between processes. The patch invalidates preserved FPU registers upon XRSTOR failure to prevent this leakage and maintain process isolation. Although the exact conditions triggering this issue are unclear and considered rare, the vulnerability represents a subtle microarchitectural flaw that could undermine kernel-level task isolation on affected Linux systems running on Intel and AMD x86 processors.
Potential Impact
For European organizations, this vulnerability poses a risk primarily in multi-tenant environments such as cloud service providers, data centers, and virtualized infrastructures where multiple user processes or virtual machines share the same physical CPU cores. Leakage of FPU register state between tasks could potentially expose sensitive cryptographic keys, user data, or other confidential information processed in floating-point registers. This undermines confidentiality and integrity guarantees of the operating system's process isolation. Although exploitation requires specific timing and conditions, the impact could be significant in high-security environments such as financial institutions, government agencies, and critical infrastructure operators prevalent in Europe. Additionally, organizations relying on Linux-based servers for web hosting, container orchestration, or HPC workloads may face risks of cross-process data leakage. The vulnerability does not appear to cause denial of service or direct code execution but could facilitate side-channel attacks or information disclosure. Given the widespread use of Linux in European IT infrastructure, the potential impact is broad but focused on confidentiality breaches in multi-threaded or multi-process workloads.
Mitigation Recommendations
European organizations should prioritize applying the official Linux kernel patches that invalidate FPU registers upon XRSTOR failure as soon as they become available. Kernel updates should be tested and deployed promptly on all affected systems, especially those running on Intel and AMD x86 processors. In addition to patching, organizations should: 1) Review and harden multi-tenant environments by isolating critical workloads on dedicated physical cores or hosts to reduce sibling thread interference. 2) Employ kernel-level security modules and mandatory access controls (e.g., SELinux, AppArmor) to limit process privileges and reduce attack surface. 3) Monitor system logs and performance counters for unusual page faults or TLB invalidations that might indicate exploitation attempts. 4) For virtualized environments, ensure hypervisor and guest OS are updated to prevent cross-VM leakage. 5) Conduct security audits focusing on cryptographic key management to mitigate risks from potential leakage. These steps go beyond generic advice by focusing on the specific microarchitectural and kernel-level nature of the vulnerability.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-04-10T18:59:19.529Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9835c4522896dcbea0f5
Added to database: 5/21/2025, 9:09:09 AM
Last enriched: 6/26/2025, 3:06:40 PM
Last updated: 7/31/2025, 12:23:10 AM
Views: 16
Related Threats
CVE-2025-9091: Hard-coded Credentials in Tenda AC20
LowCVE-2025-9090: Command Injection in Tenda AC20
MediumCVE-2025-9092: CWE-400 Uncontrolled Resource Consumption in Legion of the Bouncy Castle Inc. Bouncy Castle for Java - BC-FJA 2.1.0
LowCVE-2025-9089: Stack-based Buffer Overflow in Tenda AC20
HighCVE-2025-9088: Stack-based Buffer Overflow in Tenda AC20
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.