viernes, 22 de abril de 2011

Ejecución de código en Qemu

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.


Víctor Antonio Torre
vtorre@hispasec.com


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

No hay comentarios:

Publicar un comentario en la entrada