Existe un fallo de validación en las funciones ‘virtio_blk_handle_write’ y ‘virtio_blk_handle_read’ del driver virtio-blk de Quemu que podría ser aprovechado por un atacante local en la máquina huésped (virtual) para acceder a la maquina host (física) causando una denegación de servicio y, posiblemente, ejecución de código.
Qemu es un emulador y virtualizador de código abierto. Es capaz de emular distintas arquitecturas de procesadores, como ARM o PPC entre otros. Soporta virtualización sobre con Xen y KVM. Un ejemplo de su uso, es el emulador de Android incluido en el SDK.
Las funciones vulnerables no validan correctamente los datos de una petición para que sean divisibles entre el tamaño de los bloques que van a ser leídos o escritos. Esto causa un desbordamiento de memoria basado en heap y podría ser aprovechado por un atacante para acceder, con los privilegios heredados de la máquina virtual, a la máquina física donde se virtualiza.
El problema fue encontrado por casualidad mientras se escribía un driver virtio-blk para Solaris. El parche para este fallo ya ha sido publicado y se está esperando la asignación de un CVE que identifique la vulnerabilidad.
Más información:
Qemu-devel Mail List
http://lists.nongnu.org/archive/html/qemu-devel/2011-04/msg00642.html
Red Hat confirmation
https://bugzilla.redhat.com/show_bug.cgi?id=698906
Commit
http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commit;h=52c050236eaa4f0b5e1d160cd66dc18106445c4d