CVE-2021-47226 json
x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer
published 2024-05-21 2 y ago modified 2026-08-05 3 mo ago also EUVD-2021-33874
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 13%
- public exploits
- 0
- none known
Summary
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".
Patch / fix
- Linux Linux 5.10.46, 5.12.13, 5.13
- linux Debian 14, Debian 13, Debian 12 5.10.46-1
debian advisories DEBIAN-CVE-2021-47226
- kernel RHEL 8 4.18.0-348.el8
- perf RHEL 8 4.18.0-348.el8
- bpftool RHEL 8 4.18.0-348.el8
- kernel-core RHEL 8 4.18.0-348.el8
- kernel-tools RHEL 8 4.18.0-348.el8
- python3-perf RHEL 8 4.18.0-348.el8
- kernel-modules RHEL 8 4.18.0-348.el8
- kernel-zfcpdump RHEL 8 4.18.0-348.el8
red hat advisories RHSA-2021:4356
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2021-47226 updated cvss 5.5
kernel: x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer
-
Red Hat Enterprise Linux 8 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +6 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 moreaffected: no fix available “Fix deferred”
-
Red Hat CodeReady Linux Builder (v. 8) kernel-debuginfo-common-x86_64 4.18.0-348.el8, kernel-debuginfo-common-aarch64 4.18.0-348.el8, kernel-debuginfo-common-ppc64le 4.18.0-348.el8 Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-348.el8, kernel 4.18.0-348.el8, bpftool 4.18.0-348.el8, kernel-core 4.18.0-348.el8, kernel-tools 4.18.0-348.el8, python3-perf 4.18.0-348.el8, +15 morefixed: vendor fix RHSA-2021:4356
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.22% chance of exploitation in the next 30 days, higher than 13% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H |
| NVD | 3.1 | 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-203 Observable Discrepancy
- Technology feeds
References
Sources
- CVE List CVE-2021-47226
- NVD CVE-2021-47226
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.