mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
KVM: nSVM: Add missing consistency check for nCR3 validity
From the APM Volume #2, 15.25.4 (24593—Rev. 3.42—March 2024):
When VMRUN is executed with nested paging enabled (NP_ENABLE = 1), the
following conditions are considered illegal state combinations, in
addition to those mentioned in “Canonicalization and Consistency Checks”:
• Any MBZ bit of nCR3 is set.
• Any G_PAT.PA field has an unsupported type encoding or any
reserved field in G_PAT has a nonzero value.
Add the consistency check for nCR3 being a legal GPA with no MBZ bits
set. Note, the G_PAT.PA check is being handled separately[*].
Link: https://lore.kernel.org/kvm/20260205214326.1029278-3-jmattson@google.com [*]
Fixes: 4b16184c1c ("KVM: SVM: Initialize Nested Nested MMU context on VMRUN")
Cc: stable@vger.kernel.org
Signed-off-by: Yosry Ahmed <yosry@kernel.org>
Link: https://patch.msgid.link/20260303003421.2185681-16-yosry@kernel.org
[sean: capture everything in CC(), massage changelog formatting]
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
e0b6f031d6
commit
b71138fcc3
|
|
@ -348,6 +348,10 @@ static bool nested_vmcb_check_controls(struct kvm_vcpu *vcpu,
|
|||
if (CC(control->asid == 0))
|
||||
return false;
|
||||
|
||||
if (CC((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) &&
|
||||
!kvm_vcpu_is_legal_gpa(vcpu, control->nested_cr3)))
|
||||
return false;
|
||||
|
||||
if (CC(!nested_svm_check_bitmap_pa(vcpu, control->msrpm_base_pa,
|
||||
MSRPM_SIZE)))
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user