In the Linux kernel, the following vulnerability has been resolved:
KVM: nVMX: Hide shadow VMCS right after VMCLEAR
freenested() frees the shadow VMCS while vmcs01 still points to it. But because it is asynchronous with respect to loadedvmcs_clear(), the vCPU might migrate before the pointer is cleared and __loadedvmcsclear() may then execute VMCLEAR.
The VMCS needs to stay attached until its explicit VMCLEAR completes, but then it can be hidden and the page safely freed.