CVE-2010-0306: Medium severity Kvm Qumranet Kvm vulnerability
Gleb Napatov found a bug in KVM that can be used to bypass proper IOPL/CPL checking. KVM relies on CPU to check IOPL/CPL before instruction execution, so emulator doesn't do IOPL/CPL checking. Malicious guest process running in SMP guest can bypass CPU IOPL/CPL checking 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 malicious 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.
Other sources
The x86 emulator in KVM 83, when a guest is configured for Symmetric Multiprocessing (SMP), does not use the Current Privilege Level (CPL) and I/O Privilege Level (IOPL) to restrict instruction execution, which allows guest OS users to cause a denial of service (guest OS crash) or gain privileges on the guest OS by leveraging access to a (1) IO port or (2) MMIO region, and replacing an instruction in between emulator entry and instruction fetch, a related issue to CVE-2010-0298.
— MITRE
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2010-0306?
CVE-2010-0306 is classified as a high-severity vulnerability due to the potential for privilege escalation.
How do I fix CVE-2010-0306?
To fix CVE-2010-0306, it is recommended to update KVM to the latest stable version that includes the security patches.
What systems are affected by CVE-2010-0306?
CVE-2010-0306 specifically affects KVM version 83 from KVM Qumranet.
What type of vulnerability is CVE-2010-0306?
CVE-2010-0306 is a privilege escalation vulnerability that allows a malicious guest process to bypass IOPL/CPL checks.
Can CVE-2010-0306 be exploited remotely?
CVE-2010-0306 requires local access to the vulnerable system, making it less likely to be exploited remotely.