Уязвимость несоответствия типов была обнаружена в обработке VMState vhost в режиме реального времени. Размер целевого буфера сохраняется как uint64_t, но считывается по пути загрузки VMS_VBUFFER как подписанное int32_t. На хостах с прямым порядком байтов созданное состояние входящей миграции с установленным битом 31 приводит к тому, что значение интерпретируется как отрицательное, а затем неявно преобразуется в очень большой size_t, что приводит к тому, что qemu_get_buffer() копирует данные потока миграции за пределы текущего региона, поддерживаемого mmap.
Это может привести к сбою процесса QEMU или повреждению памяти. Для эксплуатации требуется контроль над источником миграции или доступ на запись к каналу миграции в сочетании с назначением, настроенным на использование виртуальной миграции в режиме реального времени.
Показать оригинальное описание (EN)
A type mismatch vulnerability was found in QEMU's vhost inflight migration VMState handling. The destination buffer size is stored as a uint64_t but read by the VMS_VBUFFER load path as a signed int32_t. On little-endian hosts, a crafted incoming migration state with bit 31 set causes the value to be interpreted as negative and then implicitly converted to a very large size_t, leading qemu_get_buffer() to copy migration-stream data beyond the bounds of the mmap-backed inflight region. This can result in a crash of the QEMU process or memory corruption. Exploitation requires control of the migration producer or write access to the migration channel, combined with a destination configured to use vhost inflight migration.
Характеристики атаки
Последствия
Строка CVSS v3.1