In the Linux kernel, the following vulnerability has been resolved:
x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1
When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD. Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.
E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:
------------[ cut here ]------------ WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848 Modules linked in: kvm_intel kvm irqbypass CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:exc_device_not_available+0x101/0x110 Call Trace: <TASK> asm_exc_device_not_available+0x1a/0x20 RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90 switch_fpu_return+0x4a/0xb0 kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm] kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm] __x64_sys_ioctl+0x8f/0xd0 do_syscall_64+0x62/0x940 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ end trace 0000000000000000 ]---
This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().
and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:
------------[ cut here ]------------ WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867 Modules linked in: kvm_intel kvm irqbypass CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:exc_device_not_available+0x101/0x110 Call Trace: <TASK> asm_exc_device_not_available+0x1a/0x20 RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90 fpu_swap_kvm_fpstate+0x6b/0x120 kvm_load_guest_fpu+0x30/0x80 [kvm] kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm] kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm] __x64_sys_ioctl+0x8f/0xd0 do_syscall_64+0x62/0x940 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ end trace 0000000000000000 ]---
The new behavior is consistent with the AMX architecture. Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):
If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i, the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1; instead, it operates as if XINUSE[i] = 0 (and the state component was in its initial state): it saves bit i of XSTATE_BV field of the XSAVE header as 0; in addition, XSAVE saves the initial configuration of the state component (the other instructions do not save state component i).
Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest. However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.
Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.
[Move clea ---truncated---
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-livepatch-6.1.163-186.299Upgrade kernel-libbpfUpgrade bpftool-debuginfoUpgrade kernel6.12Upgrade kernelUpgrade kernel-livepatch-6.12.68-92.122Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-headersUpgrade kernel-libbpf-develUpgrade kernel-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-libbpf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel6.12-develUpgrade kernel-toolsUpgrade kernel6.12-modules-extra-commonUpgrade bpftoolUpgrade kernel-debuginfoUpgrade kernel6.12-libbpf-debuginfoUpgrade perf6.12Upgrade python3-perf-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel6.12-libbpf-develUpgrade kernel6.12-libbpf-staticUpgrade kernel6.12-libbpfUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-tools-debuginfoUpgrade kernel6.12-toolsUpgrade kernel6.12-debuginfoUpgrade kernel-develUpgrade kernel6.12-tools-develUpgrade kernel-headersUpgrade kernel-tools-develUpgrade perfUpgrade kernel-modules-extra-commonUpgrade python3-perf6.12-debuginfoUpgrade perf-debuginfoUpgrade kernel6.12-modules-extraUpgrade bpftool6.12-debuginfoUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf6.12Upgrade bpftool6.12 | Mar 9, 2026 | Jan 25, 2026 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Feb 11, 2026 | Feb 11, 2026 |
| Oracle_linux | — | Upgrade kernel-uek | Mar 12, 2026 | Jan 25, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Jan 25, 2026 |
| Suse | — | Upgrade gfs2-kmp-azureUpgrade kernel-default-baseUpgrade kernel-default-vdsoUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-develUpgrade dtb-renesasUpgrade reiserfs-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade dtb-exynosUpgrade dtb-allwinnerUpgrade gfs2-kmp-64kbUpgrade cluster-md-kmp-rtUpgrade dtb-armUpgrade kernel-64kb-extraUpgrade kselftests-kmp-64kbUpgrade dtb-xilinxUpgrade kernel-symsUpgrade dtb-hisiliconUpgrade kernel-azure-optionalUpgrade kernel-default-optionalUpgrade dlm-kmp-64kbUpgrade dtb-lgUpgrade dtb-qcomUpgrade cluster-md-kmp-64kbUpgrade dtb-amdUpgrade kernel-sourceUpgrade kernel-source-vanillaUpgrade dtb-rockchipUpgrade dtb-caviumUpgrade dtb-sprdUpgrade kernel-rt-develUpgrade kernel-source-azureUpgrade kernel-64kb-optionalUpgrade dtb-alteraUpgrade kernel-64kb-develUpgrade dtb-mediatekUpgrade kernel-rt-vdsoUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-syms-azureUpgrade cluster-md-kmp-azureUpgrade kernel-zfcpdumpUpgrade cluster-md-kmp-defaultUpgrade kernel-obs-buildUpgrade kernel-docsUpgrade kernel-default-develUpgrade kernel-rt-optionalUpgrade kernel-kvmsmallUpgrade kernel-devel-azureUpgrade kselftests-kmp-rtUpgrade dtb-apmUpgrade kernel-default-livepatchUpgrade kernel-default-extraUpgrade kernel-azure-vdsoUpgrade dtb-marvellUpgrade dtb-appleUpgrade ocfs2-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-64kbUpgrade kernel-obs-qaUpgrade kernel-kvmsmall-develUpgrade kselftests-kmp-azureUpgrade dtb-socionextUpgrade dtb-nvidiaUpgrade dtb-broadcomUpgrade kernel-azure-extraUpgrade dlm-kmp-defaultUpgrade dlm-kmp-azureUpgrade kernel-rt-extraUpgrade dtb-amlogicUpgrade kernel-azure-develUpgrade kernel-defaultUpgrade kernel-rtUpgrade kernel-macrosUpgrade kernel-azureUpgrade dtb-freescaleUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade dtb-amazon | Feb 12, 2026 | Feb 12, 2026 |
| Ubuntu | — | Upgrade linux-image-6.17.0-1018-realtimeUpgrade linux-image-6.8.0-117-lowlatency-64kUpgrade linux-image-6.17.0-1018-azure-fdeUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1054-nvidia-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-kvmUpgrade linux-image-6.17.0-1030-oemUpgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1054-gke-64kUpgrade linux-image-virtualUpgrade linux-image-generic-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-6.17Upgrade linux-image-6.8.0-1059-azureUpgrade linux-image-fips-6.8Upgrade linux-image-generic-64kUpgrade linux-image-6.17.0-1021-azureUpgrade linux-image-gcp-6.17Upgrade linux-image-6.17.0-1031-nvidiaUpgrade linux-image-oem-24.04aUpgrade linux-image-gkeopUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-nvidia-64k-6.17Upgrade linux-image-6.8.0-1024-nvidia-tegraUpgrade linux-image-6.8.0-1041-gkeopUpgrade linux-image-6.8.0-1054-nvidia-64kUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-ibmUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-24.04dUpgrade linux-image-gke-6.8Upgrade linux-image-xilinxUpgrade linux-image-azure-6.17Upgrade linux-image-6.8.0-1024-nvidia-tegra-rtUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-nvidia-64kUpgrade linux-image-ibm-classicUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1056-raspiUpgrade linux-image-6.8.0-1059-azure-fipsUpgrade linux-image-6.8.0-1055-awsUpgrade linux-image-6.17.0-1021-gcpUpgrade linux-image-aws-fips-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-ibm-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1054-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1054-gkeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64k-hwe-24.04Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-realtimeUpgrade linux-image-nvidia-tegraUpgrade linux-image-realtime-6.17Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.17.0-1019-oracle-64kUpgrade linux-image-azure-fipsUpgrade linux-image-oem-24.04cUpgrade linux-image-6.8.0-117-generic-64kUpgrade linux-image-nvidia-hwe-24.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.17.0-1019-oracleUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-oem-24.04bUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-116-fipsUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.17.0-1021-gcp-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1058-gcp-fipsUpgrade linux-image-virtual-6.8Upgrade linux-image-fipsUpgrade linux-image-6.8.0-1055-aws-fipsUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-2045-raspi-realtimeUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-azure-fde-6.17Upgrade linux-image-azureUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-xilinx-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.0-1055-ibmUpgrade linux-image-6.8.0-1032-xilinxUpgrade linux-image-raspiUpgrade linux-image-oracleUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-117-genericUpgrade linux-image-6.8.0-1058-gcp-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.1-1051-realtimeUpgrade linux-image-6.8.0-1058-gcpUpgrade linux-image-gcp-fipsUpgrade linux-image-oracle-6.17Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-genericUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1054-nvidiaUpgrade linux-image-6.17.0-1031-nvidia-64kUpgrade linux-image-realtime-6.8.1Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-117-lowlatencyUpgrade linux-image-raspi-6.8Upgrade linux-image-nvidia-6.17Upgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1056-azureUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1055-aws-64k | May 25, 2026 | May 19, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Jan 25, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub