CVE-2026-23005CVE-2026-23005是Linux内核6.19.0-rc2版本中发现的x86/fpu模块安全漏洞。该漏洞存在于KVM虚拟化环境中,当加载guest XSAVE状态或更新XFD(Extended Feature Disable)时,内核未正确清除XFD禁用特性在XSTATE_BV中的设置位。这导致XRSTOR指令执行时遇到#NM(Device Not Available)异常,最终造成内核panic。攻击者可通过本地低权限用户触发此漏洞,在虚拟化环境中造成宿主系统拒绝服务。漏洞影响所有使用KVM和AMX特性的Linux系统。
漏洞核心问题在于XSTATE_BV和XFD状态不同步。当guest虚拟机执行WRMSR(MSR_IA32_XFD)设置XFD[18]=1禁用AMX特性时,如果此时主机发生IRQ中断并触发kernel_fpu_begin(),在vmexit处理器的fpu_update_guest_xfd()调用之前,内核会使用当前的XFD值保存guest FPU状态。此时XSTATE_BV[i]=1但XFD[i]=1的不一致状态被保存,后续XRSTOR执行时会尝试加载已禁用的状态组件,触发#NM异常。类似问题也出现在用户空间通过KVM_SET_XSAVE设置XSTATE_BV[i]=1的场景。修复方案是在fpu_update_guest_xfd()和KVM_SET_XSAVE处理中,确保XFD禁用特性的XSTATE_BV位被清除,保持与Intel SDM规范一致的行为。