It was found that kvm_vm_ioctl_assign_device function did not check if the user requesting assignment was privileged or not. Together with /dev/kvm being 666, unprivileged user could assign unused pci devices, or even devices that were in use and whose resources were not properly claimed by the respective drivers. Please note that privileged access was still needed to re-program the device to for example issue DMA requests. This is typically achieved by touching files on sysfs filesystem. These files are usually not accessible to unprivileged users. As a result, local user could use this flaw to crash the system. Reference: http://thread.gmane.org/gmane.comp.emulators.kvm.devel/82043 Acknowledgements: Red Hat would like to thank Sasha Levin for reporting this issue.
Created kernel tracking bugs for this issue Affects: fedora-all [bug 770096]
Statement: This issue did not affect the versions of Linux kernel as shipped with Red Hat Enterprise Linux 4 and Red Hat Enterprise MRG as they did not provide support for the KVM subsystem. This has been addressed in Red Hat Enterprise Linux 6 via https://rhn.redhat.com/errata/RHSA-2012-0350.html. A future kvm update in Red Hat Enterprise 5 may address this flaw.
This issue has been addressed in following products: Red Hat Enterprise Linux 5 Via RHSA-2012:0149 https://rhn.redhat.com/errata/RHSA-2012-0149.html
This issue has been addressed in following products: Red Hat Enterprise Linux 6 Via RHSA-2012:0350 https://rhn.redhat.com/errata/RHSA-2012-0350.html
This issue has been addressed in following products: Red Hat Enterprise Linux 6.1 EUS - Server Only Via RHSA-2012:1042 https://rhn.redhat.com/errata/RHSA-2012-1042.html