Los investigadores que recientemente descubrieron la vulnerabilidad Fragnesia en el núcleo de Linux publicaron información sobre las vulnerabilidades en QEMU que permiten obtener acceso root al entorno host desde el sistema huésped. A la problemática se le ha asignado el nombre en código QEMUtiny, pero aún no se ha asignado un identificador CVE. Se ha preparado un exploit que involucra dos vulnerabilidades en el código de emulación del dispositivo CXL (Compute Express Link).
Ambas vulnerabilidades están presentes en el código cxl-mailbox-utils.c. La primera vulnerabilidad se manifiesta a partir del lanzamiento de QEMU 7.1.0 y provoca la lectura de memoria desde un área fuera del búfer asignado debido a que la función cmd_logs_get_log() interpreta erróneamente el desplazamiento solicitado del registro CEL como un índice en el array, mientras que se especifica en bytes. La segunda vulnerabilidad se manifiesta desde QEMU 11.0.0 y lleva a un desbordamiento de búfer en la función cmd_features_set_feature() debido al manejo del desplazamiento de las estructuras al escribir los atributos sin verificar que el valor calculado "offset + bytes_to_copy" esté dentro del tamaño de la estructura seleccionada.
De hecho, el ataque solo es posible en la última rama de QEMU 11.0.0. No se ha informado de ninguna solución por el momento, solo se indicó que antes de revelar la vulnerabilidad, la información fue entregada a los desarrolladores de QEMU, quienes respondieron que el soporte del dispositivo CXL en QEMU no está implementado para uso en virtualización.
El exploit ha sido verificado con la base de código de QEMU del 11 de mayo con el último commit 5e61afe. El funcionamiento del exploit depende de la disposición de las estructuras en la memoria de cada compilación específica de QEMU y de la libc del sistema, pero según los investigadores, utilizando la vulnerabilidad que permite escanear la memoria y provocar lectura desde un área fuera del búfer, se podría crear un exploit universal que funcione con diferentes versiones de QEMU.
Fuente: opennet.ru
