mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
KVM: x86: Fix array_index_nospec() protection in kvm_vcpu_ioctl_x86_set_mce()
Commitaebc3ca190("KVM: x86: Enable CMCI capability by default and handle injected UCNA errors") introduced kvm_vcpu_x86_set_ucna(), which accesses @vcpu->arch.mci_ctl2_banks[] using @mce->bank as the index. The @mce struct is user-controlled, provided via the KVM_X86_SET_MCE ioctl. The caller of this function, kvm_vcpu_ioctl_x86_set_mce(), bounds-checks @mce->bank and applies array_index_nospec() to advance the @banks pointer, but @mce->bank itself is passed through unclamped. On a speculative path that bypasses the bounds check, the raw @mce->bank value can index mci_ctl2_banks[] out-of-bounds. In practice this is a very weak gadget, and would at most allow leaking a single bit in a 64-bit integer, but prevent potential future issues by clamping @mce->bank in place with array_index_nospec(), before passing the struct to kvm_vcpu_x86_set_ucna(). Fixes:aebc3ca190("KVM: x86: Enable CMCI capability by default and handle injected UCNA errors") Signed-off-by: Carlos López <clopez@suse.de> Link: https://patch.msgid.link/20260609131856.2562222-3-clopez@suse.de Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
dcfb0f2c06
commit
249f9be58c
1 changed files with 2 additions and 1 deletions
Loading…
Add table
Add a link
Reference in a new issue