Bug 1066340 (CVE-2013-4150)
| Summary: | CVE-2013-4150 qemu: virtio-net: out-of-bounds buffer write on invalid state load | ||
|---|---|---|---|
| Product: | [Other] Security Response | Reporter: | Petr Matousek <pmatouse> |
| Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | unspecified | CC: | abaron, amit.shah, aortega, apevec, areis, ayoung, berrange, bsarathy, cfergeau, chrisw, dallan, dwmw2, ehabkost, gkotton, gleb, gmollett, itamar, jkurik, jrusnack, juzhang, knoel, lhh, lpeer, markmc, minovotn, mkenneth, mst, mtosatti, pbonzini, pfrields, ppandit, rbalakri, rbryant, rhod, rjones, sclewis, scottt.tw, virt-maint, virt-maint, yeylon |
| Target Milestone: | --- | Keywords: | Reopened, Security |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-09-22 04:55:35 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: | 1095688, 1095689, 1095690, 1133850 | ||
| Bug Blocks: | 1036654, 1133827 | ||
Statement: This issue does not affect the versions of kvm package as shipped with Red Hat Enterprise Linux 5. This issue does not affect the versions of qemu-kvm package as shipped with Red Hat Enterprise Linux 6. Created qemu tracking bugs for this issue: Affects: fedora-all [bug 1095688] qemu-1.6.2-5.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. Acknowledgements: The issues were discovered as part of the state loading code audit performed by Michael S. Tsirkin of Red Hat, Anthony Liguori and Michael Roth. This issue has been addressed in following products: Red Hat Enterprise Linux 7 Via RHSA-2014:0927 https://rhn.redhat.com/errata/RHSA-2014-0927.html This issue has been addressed in the following products: OpenStack 5 for RHEL 7 Via RHSA-2014:1268 https://rhn.redhat.com/errata/RHSA-2014-1268.html |
Michael S. Tsirkin writes: QEMU 1.5.0 out-of-bounds buffer write in virtio_net_load()@hw/net/virtio-net.c This code is in hw/net/virtio-net.c: if (n->max_queues > 1) { if (n->max_queues != qemu_get_be16(f)) { error_report("virtio-net: different max_queues "); return -1; } n->curr_queues = qemu_get_be16(f); for (i = 1; i < n->curr_queues; i++) { n->vqs[i].tx_waiting = qemu_get_be32(f); } } Number of vqs is max_queues, so if we get invalid input here, for example if max_queues = 2, curr_queues = 3, we get write beyond end of the buffer, with data that comes from wire. This might be used to corrupt qemu memory in hard to predict ways. An user able to alter the savevm data (either on the disk or over the wire during migration) could use this flaw to to corrupt QEMU process memory on the (destination) host, which could potentially result in arbitrary code execution on the host with the privileges of the QEMU process. Upstream fix: ------------- -> http://git.qemu.org/?p=qemu.git;a=commit;h=eea750a5623ddac7a61982eec8f1c93481857578