Bug 717399 (CVE-2011-2512)

Summary: CVE-2011-2512 qemu-kvm: OOB memory access caused by negative vq notifies
Product: [Other] Security Response Reporter: Petr Matousek <pmatouse>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: ehabkost, lcapitulino, mkenneth, virt-maint
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-05-08 18:32:13 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: 707094, 717403    
Bug Blocks:    

Description Petr Matousek 2011-06-28 18:29:14 UTC
The virtio_queue_notify() function checks that the virtqueue number is less than the maximum number of virtqueues.  A signed comparison is used but the virtqueue number could be negative if a buggy or malicious guest is run.  This results in memory accesses outside of the virtqueue array. 

To trigger this issue the attacker needs to issue 32bit write to Queue Notify field of Virtio Header in the virtio pci config space even though the field is 16bit only by specs. Qemu-kvm allows that for the moment and provides whole 32bit value to the underlying functions.

Unprivileged guest user could use this flaw to crash the guest (denial of service) or, possibly, escalate their privileges on the host.

Upstream patch:
http://patchwork.ozlabs.org/patch/94604/

Comment 3 Petr Matousek 2011-06-28 18:44:01 UTC
Statement:

This issue only affects Red Hat Enterprise Linux 6. The version of the qemu/kvm
as shipped with Red Hat Enterprise Linux 5 is not affected.

Comment 5 errata-xmlrpc 2011-07-05 18:08:04 UTC
This issue has been addressed in following products:

  Red Hat Enterprise Linux 6

Via RHSA-2011:0919 https://rhn.redhat.com/errata/RHSA-2011-0919.html