Bug 814149 (CVE-2012-2121)

Summary: CVE-2012-2121 kvm: device assignment page leak
Product: [Other] Security Response Reporter: Petr Matousek <pmatouse>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: agordeev, anton, arozansk, bhu, davej, dhoward, fhrbata, gansalmon, itamar, jforbes, jkacur, jonathan, jwboyer, kernel-maint, kernel-mgr, lgoncalv, lwang, madhu.chinakonda, plougher, rt-maint, sforsber, williams, wnefal+redhatbugzilla
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-24 12:42:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 811653, 814151, 814153, 814154, 814155    
Bug Blocks: 812428    

Description Petr Matousek 2012-04-19 10:10:47 UTC
KVM uses memory slots to track and map guest regions of memory.  When device assignment is used, the pages backing these slots are pinned in memory using get_user_pages and mapped into the iommu.  The problem is that when a memory slot is destroyed the pages for the associated memory slot are neither unpinned nor unmapped from the iommu.

The problem is that those pages are now never unpinned and continue to have an increased reference count. This is therefore a potential page leak from the kvm kernel module.

On Red Hat Enterprise Linux, local user with ability to assign device (with access to PCI sysfs files for a device) could use this flaw to DoS the system.

With upstream qemu-kvm/kvm privileged guest user that could hotunplug and then hotplug back certain devices could potentially use this flaw to DoS the host.

Upstream fixes:
http://git.kernel.org/?p=virt/kvm/kvm.git;a=commit;h=32f6daad4651a748a58a3ab6da0611862175722f
http://git.kernel.org/?p=virt/kvm/kvm.git;a=commit;h=21a1416a1c945c5aeaeaf791b63c64926018eb77

References:
https://lkml.org/lkml/2012/4/11/248

Comment 3 Petr Matousek 2012-04-19 10:16:30 UTC
Created kernel tracking bugs for this issue

Affects: fedora-all [bug 814155]

Comment 5 Kurt Seifried 2012-04-19 15:38:30 UTC
Assigned CVE as per http://www.openwall.com/lists/oss-security/2012/04/19/16

Comment 6 Fedora Update System 2012-04-24 04:29:38 UTC
kernel-3.3.2-8.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2012-04-24 14:54:57 UTC
kernel-3.3.2-6.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 8 Fedora Update System 2012-04-26 03:29:46 UTC
kernel-2.6.43.2-6.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 9 errata-xmlrpc 2012-05-21 14:28:23 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 5

Via RHSA-2012:0676 https://rhn.redhat.com/errata/RHSA-2012-0676.html

Comment 10 errata-xmlrpc 2012-06-18 13:34:12 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 6

Via RHSA-2012:0743 https://rhn.redhat.com/errata/RHSA-2012-0743.html