KVM: x86: Ignore pending PV EOI if the vCPU has since disabled PV EOIs
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Ignore pending PV EOI if the vCPU has since disabled PV EOIs Ignore KVM's internal "service pending PV EOI" request if the vCPU has disabled PV EOIs since the request was made. Asserting that PV EOIs are enabled can fail if reading guest memory in pv_eoi_get_user() fails, i.e. if pv_eoi_test_and_clr_pending() bails early, and the vCPU also disables PV EOIs. kernel BUG at arch/x86/kvm/lapic.c:3338! Oops: invalid opcode: 0000 [#1] SMP CPU: 4 UID: 1000 PID: 890 Comm: pv_eoi_test Not tainted 7.0.0-d585aa5894d8-vm #337 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:kvm_lapic_sync_from_vapic+0x12b/0x140 [kvm] Call Trace: <TASK> kvm_arch_vcpu_ioctl_run+0x1075/0x1c30 [kvm] kvm_vcpu_ioctl+0x2d5/0x980 [kvm] __x64_sys_ioctl+0x8a/0xd0 do_syscall_64+0xb5/0xb40 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> Modules linked in: kvm_intel kvm irqbypass ---[ end trace 0000000000000000 ]---
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in 038b9ce6fafda1babd1e33d52cbc6039747a6d87; From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in 8e9f7a95279bf608cf4c331ed89612e28c04564f; From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in ebd7845ca0471d251a1cb48d84eb165aff5b7123; From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in 97542f15dc4cf6cd3fdc035e482dca54246ddf48; From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in 32bdca80aa81c2cb906f50a88b220ce1ecdc5e6e; From ae7a2a3fb6f8b784c2752863f4f1f20c656f76fb · fixed in 9285e4070df2c40585c3d7ec9571faa7a2b97e17
- Linux Linux
3.6
- KernelLinux
From 3.6.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5