CVE-2024-46830: KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS
In the Linux kernel, the following vulnerability has been resolved:
KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS
Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly
leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX
reads guest memory.
Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN
via sync_regs(), which already holds SRCU. I.e. trying to precisely use
kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause
problems. Acquiring SRCU isn't all that expensive, so for simplicity,
grab it unconditionally for KVM_SET_VCPU_EVENTS.
=============================
WARNING: suspicious RCU usage
6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted
-----------------------------
include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
1 lock held by repro/1071:
#0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]
stack backtrace:
CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
Call Trace:
<TASK>
dump_stack_lvl+0x7f/0x90
lockdep_rcu_suspicious+0x13f/0x1a0
kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]
kvm_vcpu_read_guest+0x3e/0x90 [kvm]
nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]
load_vmcs12_host_state+0x432/0xb40 [kvm_intel]
vmx_leave_nested+0x30/0x40 [kvm_intel]
kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]
kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]
? mark_held_locks+0x49/0x70
? kvm_vcpu_ioctl+0x7d/0x970 [kvm]
? kvm_vcpu_ioctl+0x497/0x970 [kvm]
kvm_vcpu_ioctl+0x497/0x970 [kvm]
? lock_acquire+0xba/0x2d0
? find_held_lock+0x2b/0x80
? do_user_addr_fault+0x40c/0x6f0
? lock_release+0xb7/0x270
__x64_sys_ioctl+0x82/0xb0
do_syscall_64+0x6c/0x170
entry_SYSCALL_64_after_hwframe+0x4b/0x53
RIP: 0033:0x7ff11eb1b539
</TASK>
Security readout for executives and security teams
Plain-English summary
CVE-2024-46830 is a Linux kernel KVM issue in x86 virtualization. A KVM path can read guest memory without holding the expected SRCU protection while changing virtual CPU event state. The public record does not provide CVSS, CWE, or evidence of active exploitation.
Executive priority
Treat this as a virtualization-host maintenance priority, not an emergency absent exploitation evidence. Patch KVM hosts during the next appropriate security window, faster for multi-tenant or nested-virtualization environments.
Technical view
KVM_SET_VCPU_EVENTS can force exit from nested VMX/SVM when toggling SMM mode. That path may read guest memory through nested VMX state without acquiring kvm->srcu, triggering suspicious RCU usage. The fix acquires SRCU unconditionally while processing KVM_SET_VCPU_EVENTS.
Likely exposure
Exposure is mainly Linux x86 hosts using KVM virtualization, especially where guests or management tooling can exercise vCPU event handling and nested virtualization paths. Non-KVM systems are not indicated as affected by the supplied sources.
Exploitation context
The source bundle includes a reproducer-triggered kernel warning, but no public exploit, KEV listing, or confirmed in-the-wild exploitation. Practical impact beyond unsafe RCU usage is not fully described in the provided record.
Researcher notes
The provided stack trace centers on kvm_vcpu_ioctl_x86_set_vcpu_events, vmx_leave_nested, nested_vmx_load_msr, and kvm_vcpu_read_guest. The patch rationale is synchronization correctness: acquire kvm->srcu before paths that may read guest memory.
Mitigation direction
Update affected Linux kernels through vendor-supported packages or stable kernel fixes.
Prioritize KVM hypervisors and systems offering nested virtualization.
Check Debian LTS guidance if using affected Debian kernel packages.
Restrict KVM device access to trusted virtualization management processes.
Monitor vendor advisories for corrected kernel versions and backports.
Validation and detection
Inventory Linux x86 hosts running KVM virtualization.
Map kernel versions to vendor advisories and listed stable commits.
Confirm patched kernels are deployed and running after reboot.
Review virtualization platforms for nested VMX/SVM exposure.
Check logs for KVM or RCU warnings during security review.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-46830 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.