|
|
Log in / Subscribe / Register

KVM: nSVM: nested VMSAVE/VMLOAD fixes

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




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds