Bug 635535
Summary: | Disallow 0-sized writes to virtio ports to go through to host (leading to VM crash) | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Amit Shah <amit.shah> | |
Component: | kernel | Assignee: | Amit Shah <amit.shah> | |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | |
Severity: | high | Docs Contact: | ||
Priority: | medium | |||
Version: | 6.1 | CC: | akong, amit.shah, dhoward, fhrbata, gyue, llim, plyons, tburke, virt-maint | |
Target Milestone: | rc | Keywords: | ZStream | |
Target Release: | 6.1 | |||
Hardware: | All | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | kernel-2.6.32-85.el6 | Doc Type: | Bug Fix | |
Doc Text: |
Prior to this update, user space could submit (using the write() operation) a buffer with zero length to be written to the host, causing the qemu hypervisor instance running on that host to crash. This was caused by the write() operation triggering a virtqueue event on the host, causing a NULL buffer to be accessed. With this update, user space is no longer allowed to submit zero-sized buffers and the aforementioned crash no longer occur.
|
Story Points: | --- | |
Clone Of: | ||||
: | 636046 (view as bug list) | Environment: | ||
Last Closed: | 2011-05-23 20:52:46 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: | ||||
Bug Blocks: | 580954, 636046, 678559 |
Description
Amit Shah
2010-09-20 06:05:43 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release. Patch(es) available on kernel-2.6.32-89.el6 Bug can be reproduced with guest kernel kernel-2.6.32-84.el6, and doesn't exist on kernel-2.6.32-85.el6. Moving to VERIFIED. (host) # qemu-kvm ... -device virtio-serial-pci,id=virtio-serial0,max_ports=31,bus=pci.0 -chardev pty,id=channel0 -device virtserialport,chardev=channel0,id=port0,bus=virtio-serial0.0 (host) # cat /dev/pts/2 //reproducer program, execute in guest #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int main(void) { int f; char buf[]=""; f = open("/dev/vport0p1", O_WRONLY); write(f,buf,0); close(f); return 0; } Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Prior to this update, user space could submit (using the write() operation) a buffer with zero length to be written to the host, causing the qemu hypervisor instance running on that host to crash. This was caused by the write() operation triggering a virtqueue event on the host, causing a NULL buffer to be accessed. With this update, user space is no longer allowed to submit zero-sized buffers and the aforementioned crash no longer occur. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0542.html |