| From: |
| Yosry Ahmed <yosry.ahmed-AT-linux.dev> |
| To: |
| Sean Christopherson <seanjc-AT-google.com> |
| Subject: |
| [PATCH 0/4] KVM: nSVM: nested VMSAVE/VMLOAD fixes |
| Date: |
| Sat, 10 Jan 2026 00:48:17 +0000 |
| Message-ID: |
| <20260110004821.3411245-1-yosry.ahmed@linux.dev> |
| Cc: |
| Paolo Bonzini <pbonzini-AT-redhat.com>, Jim Mattson <jmattson-AT-google.com>, Kevin Cheng <chengkev-AT-google.com>, kvm-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Yosry Ahmed <yosry.ahmed-AT-linux.dev> |
| Archive-link: |
| Article |
A couple of fixes for nested VMLOAD/VMSAVE and a selftest that verifies
correct behavior. The test fails without patch 1.
Patch 4 is a proposed added WARNING, I am not sure if such warnings are
generally acceptable and if that's the correct place for it (hence RFC),
but I think it's useful to WARN if VMSAVE/VMLOAD are neither intercepted
nor virtualized by the CPU, because it means that the guest is directly
accessing host memory with them, a massive security hole.
The warning doesn't fire with or without the fixes, but at some point I
thought there might be such a security bug, and having a warning will
give me some peace of mind.
Yosry Ahmed (4):
KVM: nSVM: Always use vmcb01 in VMLOAD/VMSAVE emulation
KVM: SVM: Stop toggling virtual VMSAVE/VMLOAD on intercept recalc
KVM: selftests: Add a selftests for nested VMLOAD/VMSAVE
RFC: KVM: SVM: WARN if VMSAVE/VMLOAD are not intercepted or
virtualized
arch/x86/kvm/svm/svm.c | 23 +-
tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../selftests/kvm/include/x86/processor.h | 1 +
.../kvm/x86/nested_vmsave_vmload_test.c | 197 ++++++++++++++++++
4 files changed, 218 insertions(+), 4 deletions(-)
create mode 100644 tools/testing/selftests/kvm/x86/nested_vmsave_vmload_test.c
--
2.52.0.457.g6b5491de43-goog