Vulnerability allowing exit from isolated QEMU environment

Disclosed critical vulnerability details (CVE-2019-14378) in the SLIRP handler, which is used by default in QEMU to organize a communication channel between the virtual network adapter in the guest system and the network backend on the QEMU side. The issue also affects KVM-based virtualization systems (in usermode) and Virtualbox, which use the slirp backend from QEMU, as well as applications that use the user-space networking stack libSLIRP (TCP/IP emulator).

The vulnerability allows code to be executed on the host system side with the rights of the QEMU handler process when sending a specially designed very large network packet from the guest system, which requires fragmentation. Due to an error in the ip_reass() function called when reassembling incoming packets, the first fragment may not fit in the allocated buffer and its tail will be written to the memory areas following the buffer.

For testing already available A working prototype of an exploit that bypasses ASLR and executes code by overwriting the memory of the main_loop_tlg array, including a QEMUTimerList list with timer-based handlers.
The vulnerability has already been fixed in Fedora ΠΈ SUSE/openSUSE, but remains uncorrected in Debian, Arch Linux ΠΈ FreeBSD. In Ubuntu ΠΈ RHEL the problem does not appear due to not using slirp. Vulnerability remains unpatched in latest release libslirp4.0 (the fix is ​​still available as patch).

Source: opennet.ru

Add a comment