Database/Kernel, userspace & hypervisor

Linux kernel KVM device assignment IOMMU path virt/kvm/iommu.c - kvm_iommu_map_pages: When an IOMMU mapping fails
Impact
When an IOMMU mapping fails partway through, KVM unwinds it with the wrong page count and corrupts host memory. A guest that supplies a large gfn drives the failure deliberately. This sits in the legacy KVM device-assignment code - the path used to give a VM a physical GPU - so the tenant's own act of attaching or reconfiguring its device is what triggers host memory corruption. It is also a good case study in patch discipline: the first fix was wrong and produced CVE-2014-8369, so operators who applied only the original are still exposed.
Who can reach it
Guest OS user on a host using KVM legacy device assignment with a passed-through PCI device.
What to do
Kernel upgrade that includes both commit 350b8bdd689cd2ab2c67c8a86a0be86cfa0751a7 (the original fix) and 3d32e4dbe71374a6780eaf51d719d76f9a9bf22f (the correction, CVE-2014-8369). Rolling reboot. Also worth noting as a fleet-modernisation argument: the legacy KVM device-assignment path this lives in was removed from the kernel in favour of VFIO, so hosts still using it are running a code path upstream no longer maintains.
References
Related entries
- ABRT: symlink attack on predictable core-dump paths gives local users root on RHEL hostsCVE-2015-5287 · ABRT abrt-hook-ccpp (core dump helper on RHEL/CentOS)High
- Linux kernel (mm, COW): Dirty COW: privilege escalation via MAP_PRIVATE COW breakageCVE-2016-5195 · Linux kernel (mm, COW)High
- Linux kernel VFIO drivers/vfio/pci/vfio_pci.c - VFIO_DEVICE_SET_IRQS ioctl: A state-machine confusion inCVE-2016-9083 · Linux kernel VFIO drivers/vfio/pci/vfio_pci.c - VFIO_DEVICE_SET_IRQS ioctlHigh
- Linux kernel VFIO drivers/vfio/pci/vfio_pci_intrs.c - MSI/MSI-X allocation: Sibling of CVE-2016-9083 in the sameCVE-2016-9084 · Linux kernel VFIO drivers/vfio/pci/vfio_pci_intrs.c - MSI/MSI-X allocationHigh
- Linux kernel (ELF loader): PIE stack buffer corruption, local rootCVE-2017-1000253 · Linux kernel (ELF loader)High
- Linux i915 GPU kernel driver (execbuffer2 ioctl): The execbuffer2 ioctl accepted a userspace-supplied address withoutCVE-2018-20669 · Linux i915 GPU kernel driver (execbuffer2 ioctl)High
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.