QEMU virtio-gpu cursors leaked host memory to VNC clients
CVE-2026-122027 let a guest force accelerated backends to read past a cursor buffer; the vhost-user path also leaked memory on every update.
QEMU's accelerated virtio-gpu backends copied mouse-cursor pixels as 32-bit color without checking that the guest resource was actually that format, an out-of-bounds read now tracked as CVE-2026-122027. Fernando Bortotti reported the flaw. Marc-André Lureau posted fixes that refuse anything other than 32 bits per pixel, the same rule the plain 2D backend already enforced.
The practical result was host memory leaving the machine. A 64-by-64 single-channel cursor is 4 KiB, but the OpenGL path always copied 16 KiB and forwarded the extra 12 KiB of heap to a connected VNC client as cursor data. The same mismatch existed in the rutabaga and gfxstream path and in the separate vhost-user GPU helper, which handed the overrun to the display backend as cursor pixels.
That helper had a second problem. When a size check failed it returned without freeing the virgl buffer, so a guest could grow the backend's memory by repeating cursor updates. The fix releases that buffer and skips the update instead of sending empty pixels. Formats that were already 32 bits per pixel keep working. A matching change is also in virglrenderer, which sized the cursor buffer for the resource's own format.