CVE-2026-43315
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
08/05/2026
Last modified:
15/05/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: nSVM: Remove a user-triggerable WARN on nested_svm_load_cr3() succeeding<br />
<br />
Drop the WARN in svm_set_nested_state() on nested_svm_load_cr3() failing<br />
as it is trivially easy to trigger from userspace by modifying CPUID after<br />
loading CR3. E.g. modifying the state restoration selftest like so:<br />
<br />
--- tools/testing/selftests/kvm/x86/state_test.c<br />
+++ tools/testing/selftests/kvm/x86/state_test.c<br />
@@ -280,7 +280,16 @@ int main(int argc, char *argv[])<br />
<br />
/* Restore state in a new VM. */<br />
vcpu = vm_recreate_with_one_vcpu(vm);<br />
- vcpu_load_state(vcpu, state);<br />
+<br />
+ if (stage == 4) {<br />
+ state->sregs.cr3 = BIT(44);<br />
+ vcpu_load_state(vcpu, state);<br />
+<br />
+ vcpu_set_cpuid_property(vcpu, X86_PROPERTY_MAX_PHY_ADDR, 36);<br />
+ __vcpu_nested_state_set(vcpu, &state->nested);<br />
+ } else {<br />
+ vcpu_load_state(vcpu, state);<br />
+ }<br />
<br />
/*<br />
* Restore XSAVE state in a dummy vCPU, first without doing<br />
<br />
generates:<br />
<br />
WARNING: CPU: 30 PID: 938 at arch/x86/kvm/svm/nested.c:1877 svm_set_nested_state+0x34a/0x360 [kvm_amd]<br />
Modules linked in: kvm_amd kvm irqbypass [last unloaded: kvm]<br />
CPU: 30 UID: 1000 PID: 938 Comm: state_test Tainted: G W 6.18.0-rc7-58e10b63777d-next-vm<br />
Tainted: [W]=WARN<br />
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015<br />
RIP: 0010:svm_set_nested_state+0x34a/0x360 [kvm_amd]<br />
Call Trace:<br />
<br />
kvm_arch_vcpu_ioctl+0xf33/0x1700 [kvm]<br />
kvm_vcpu_ioctl+0x4e6/0x8f0 [kvm]<br />
__x64_sys_ioctl+0x8f/0xd0<br />
do_syscall_64+0x61/0xad0<br />
entry_SYSCALL_64_after_hwframe+0x4b/0x53<br />
<br />
Simply delete the WARN instead of trying to prevent userspace from shoving<br />
"illegal" state into CR3. For better or worse, KVM&#39;s ABI allows userspace<br />
to set CPUID after SREGS, and vice versa, and KVM is very permissive when<br />
it comes to guest CPUID. I.e. attempting to enforce the virtual CPU model<br />
when setting CPUID could break userspace. Given that the WARN doesn&#39;t<br />
provide any meaningful protection for KVM or benefit for userspace, simply<br />
drop it even though the odds of breaking userspace are minuscule.<br />
<br />
Opportunistically delete a spurious newline.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.14 (including) | 5.15.202 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.165 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.128 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.75 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.16 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.6 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/155ec243ef726f4bc49536fa0bfb565dc011ab17
- https://git.kernel.org/stable/c/580ea57840864d40e019bc13fd26afdc8d510a2f
- https://git.kernel.org/stable/c/969e5e13ff5c18603f21d1f9f64ec9194e141ac0
- https://git.kernel.org/stable/c/ce904c8a5bbe697eae0f7e34b07095bd7a6dee19
- https://git.kernel.org/stable/c/deb8f6dfd31d94b18dbeeaa8c01fbec5fc70fd2b
- https://git.kernel.org/stable/c/ebb2ab4f1c87d6b52776292cf7dc16aea48e95f8
- https://git.kernel.org/stable/c/fc3ba56385d03501eb582e4b86691ba378e556f9



