QEMU virtio-gpu fix stops guest OOB read via blob size
A missing check let a malicious guest inflate blob size past its backing buffer and force out-of-bounds host reads on scanout.
QEMU has fixed CVE-2026-66021 in the virtio-gpu display path, closing a hole where a malicious guest could force the host to read past allocated memory.
The create-blob path accepted a guest-supplied blob size without comparing it to the total size of the iov backing entries. Both values are under guest control, so an attacker could declare a blob far larger than the real buffer. Later scanout setup trusted that inflated size when building a pixman surface. On the next display refresh, QEMU read beyond the actual allocation, which could crash the process or leak host memory depending on how the buffer was backed.
Marc-André Lureau’s patch rejects the resource when the backing iov is smaller than the declared blob size, returning an invalid-parameter error to the guest. The flaw was reported by sundayjiang of Tencent.
Hosts that expose virtio-gpu with blob resources to untrusted guests should take the fix; without it, a compromised guest can turn ordinary display updates into an out-of-bounds host read.