Paolo Bonzini found a bug in KVM that can be used to bypass proper permission
checking while loading segment selectors. Malicious guest userspace process
running in SMP guest can trick the emulator into loading kernel segment selector
if it has access to IO port or MMIO region. To do so it should run legitimate
instruction that does IO and will cause vcpu to enter emulator in one thread and
replace this instruction to kernel selector loading one from another thread. If
instruction is replaced after KVM entered emulator, but before instruction is
fetched emulator will be tricked to execute privileged instruction without
permission checking.