Messages in this thread | | | From | Paolo Bonzini <> | Subject | Re: [PATCH 03/28] KVM: nSVM: inject exceptions via svm_check_nested_events | Date | Mon, 8 Mar 2021 18:28:24 +0100 |
| |
On 08/03/21 17:44, Sean Christopherson wrote: > VMCALL is also probably ok > in most scenarios, but patching L2's code from L0 KVM is sketchy.
I agree that patching is sketchy and I'll send a patch. However...
>> The same is true for the VMware #GP interception case. > > I highly doubt that will ever work out as intended for the modified IO #GP > behavior. The only way emulating #GP in L2 is correct if L1 wants to pass > through the capabilities to L2, i.e. the I/O access isn't intercepted by L1. > That seems unlikely.
... not all hypervisors trap everything. In particular in this case the VMCS12 I/O permission bitmap should be consulted (which we do in vmx_check_intercept_io), but if the I/O is not trapped by L1 it should bypass the IOPL and TSS-bitmap checks in my opinion.
Paolo
> If the I/O is is intercepted by L1, bypassing the IOPL and > TSS-bitmap checks is wrong and will cause L1 to emulate I/O for L2 userspace > that should never be allowed. Odds are there isn't a corresponding emulated > port in L1, i.e. there's no major security flaw, but it's far from good > behavior.
| |