freenode
Databases & Infrastructure

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.