qmp_guest_file_read in qga/commands-posix.c and qga/commands-win32.c in qemu-ga (aka QEMU Guest Agent) in QEMU 2.12.50 has an integer overflow causing a g_malloc0() call to trigger a segmentation fault when trying to allocate a large memory chunk. The vulnerability can be exploited by sending a crafted QMP command (including guest-file-read with a large count value) to the agent via the listening socket.
The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.
Link | Tags |
---|---|
https://lists.debian.org/debian-lts-announce/2019/02/msg00041.html | third party advisory mailing list |
https://gist.github.com/fakhrizulkifli/c7740d28efa07dafee66d4da5d857ef6 | third party advisory exploit |
https://usn.ubuntu.com/3826-1/ | third party advisory vendor advisory |
https://lists.gnu.org/archive/html/qemu-devel/2018-06/msg03385.html | mailing list third party advisory patch |
http://www.securityfocus.com/bid/104531 | vdb entry third party advisory |
https://www.exploit-db.com/exploits/44925/ | exploit vdb entry third party advisory |
https://www.debian.org/security/2019/dsa-4454 | third party advisory vendor advisory |
https://seclists.org/bugtraq/2019/May/76 | third party advisory mailing list |