[PATCH 0/2] KVM: x86/mmu: nEPT X-only unsync bug fix

From: Sean Christopherson
Date: Fri May 13 2022 - 15:50:08 EST


Fix a contrived bug where KVM can create a shadow-present SPTE with RWX=0
if L1 modifies an existing RX or RWX 4kb SPTE to be X-only and the combined
permissions for the upper level SPTEs yield !X.

Patch 2 adds a comment explaining why FNAME(sync_page) isn't repsonsible
for flushing synchronized entries that reduce protections, e.g. drop X
(or add NX). Lack of a flush made me do a double-take and a lot of
staring.

Sean Christopherson (2):
KVM: x86/mmu: Drop RWX=0 SPTEs during ept_sync_page()
KVM: x86/mmu: Comment FNAME(sync_page) to document TLB flushing logic

arch/x86/kvm/mmu/paging_tmpl.h | 18 +++++++++++++++++-
arch/x86/kvm/mmu/spte.c | 2 ++
2 files changed, 19 insertions(+), 1 deletion(-)


base-commit: 2764011106d0436cb44702cfb0981339d68c3509
--
2.36.0.550.gb090851708-goog