QEMU fixes virtio-gpu OOB read from guest blob size
CVE-2026-66021 let a malicious guest inflate blob_size past its backing and trigger host reads on display refresh.
QEMU has patched a virtio-gpu flaw that allowed a malicious guest to force out-of-bounds host reads during display refresh.
CVE-2026-66021 stems from accepting a guest-controlled blob size without comparing it to the total size of the I/O vectors that back the resource. Both values are under guest control, so an attacker can declare a blob much larger than its real backing. Later scanout setup then bounds-checks against the inflated size and can create a pixman surface over an undersized buffer. Any subsequent display refresh reads past the actual allocation, which can crash QEMU or leak host memory depending on the backing type.
Marc-André Lureau of Red Hat fixed the issue by rejecting cases where present backing is smaller than the declared blob size on blob creation, when backing is attached to a blob resource, and on the blob migration load path. The Virtio GPU spec allows deferred backing, so the check applies only when I/O vector entries are already present. The bug was reported by sundayjiang of Tencent.