qemu/subprojects/libvduse
Michael S. Tsirkin 733a98a552 libvduse: validate vq size
libvduse assumes that vq size (aka vq num) is below VIRTQUEUE_MAX_SIZE
and maps logs large enough based on this assumption.

However, vduse_queue_enable() accepts the vq size returned through
VDUSE_VQ_GET_INFO without validation, so a value above
VIRTQUEUE_MAX_SIZE (1024) overruns the inflight log and causes
out-of-bounds writes in vduse_queue_inflight_get().

According to the virtio spec, vq size can only be reduced, not
increased, so vq size must not exceed the previously configured
max_size, but the kernel vduse module does not validate this for us, and
we should not trust another process to follow the spec.

Validate and reject vq size values above VIRTQUEUE_MAX_SIZE.

Fixes: CVE-2026-61402
Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3652
Reported-by: Jia Jia <physicalmtea@gmail.com>
Message-ID: <bf7e71b3139875e5e00fd53970c772d6c90dc2a1.1784888961.git.mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2026-07-27 15:13:20 -04:00
..
include
linux-headers
standard-headers
libvduse.c libvduse: validate vq size 2026-07-27 15:13:20 -04:00
libvduse.h libvduse: Add support for reconnecting 2022-06-24 17:07:06 +02:00
meson.build libvduse: Add extra compiler warnings 2023-01-11 10:44:35 +01:00