First published: Tue Jun 28 2011(Updated: )
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: <a href="http://patchwork.ozlabs.org/patch/94604/">http://patchwork.ozlabs.org/patch/94604/</a>
Affected Software | Affected Version | How to fix |
---|---|---|
QEMU QEMU-KVM |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of REDHAT-BUG-717399 is critical due to potential memory access violations.
To fix REDHAT-BUG-717399, update to the latest version of QEMU QEMU-KVM that addresses this vulnerability.
REDHAT-BUG-717399 affects systems that run QEMU QEMU-KVM with the vulnerable configuration.
REDHAT-BUG-717399 represents a memory corruption vulnerability stemming from improper validation of virtqueue numbers.
Yes, REDHAT-BUG-717399 can be exploited by a malicious or buggy guest to perform unauthorized memory accesses.