[PATCH v2 0/5] KVM: x86/xen: Restrict hypercall MSR index

From: Sean Christopherson
Date: Fri Feb 14 2025 - 20:15:00 EST


Harden KVM against goofy userspace by restricting the Xen hypercall MSR
index to the de facto standard synthetic range, 0x40000000 - 0x4fffffff.
This obviously has the potential to break userspace, but I'm fairly confident
it'll be fine (knock wood), and doing nothing is not an option as letting
userspace redirect any WRMSR is at best completely broken.

Patches 2-5 are tangentially related cleanups.

v2:
- Collect reviews. [Paul, David]
- Add proper #defines for the range. [David]
- Drop the syzkaller/stable tags (rely on disallow host writes to fix the
syzkaller splat]. David

v1: https://lore.kernel.org/all/20250201011400.669483-1-seanjc@xxxxxxxxxx

Sean Christopherson (5):
KVM: x86/xen: Restrict hypercall MSR to unofficial synthetic range
KVM: x86/xen: Add an #ifdef'd helper to detect writes to Xen MSR
KVM: x86/xen: Consult kvm_xen_enabled when checking for Xen MSR writes
KVM: x86/xen: Bury xen_hvm_config behind CONFIG_KVM_XEN=y
KVM: x86/xen: Move kvm_xen_hvm_config field into kvm_xen

arch/x86/include/asm/kvm_host.h | 4 ++--
arch/x86/include/uapi/asm/kvm.h | 3 +++
arch/x86/kvm/x86.c | 4 ++--
arch/x86/kvm/xen.c | 29 +++++++++++++++++++----------
arch/x86/kvm/xen.h | 17 +++++++++++++++--
5 files changed, 41 insertions(+), 16 deletions(-)


base-commit: 3617c0ee7decb3db3f230b1c844126575fab4d49
--
2.48.1.601.g30ceb7b040-goog