KernelScan.io

HIGH Introduced in 6.4

vmwgfx ShaderDefine Overflow

CVE-2026-80887

CVSS 7.8 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: use check_add_overflow for shader size+offset bound vmw_shader_define() validates the user-supplied shader window against its backing buffer with (u64)buffer->tbo.base.size < (u64)size + (u64)offset drm_vmw_shader_create_arg::offset is __u64 in the uapi; when it is near U64_MAX the unsigned addition wraps and the resulting tiny value passes the check. The unbounded offset is then stored in res->guest_memory_offset and forwarded to host SVGA shader-create commands. Use check_add_overflow() to detect the wrap and compare the resulting endpoint against the buffer size.

02

Engine v0.6.0

Risk summary

A local user with access to the VMware SVGA device can supply a shader creation ioctl with an offset near U64_MAX, causing the size+offset bound check to wrap and pass. The unbounded offset is then forwarded to host SVGA commands, enabling out-of-bounds access into the backing buffer and potential memory corruption on the host or guest.

Affecteddrivers/gpu/drm/vmwgfx/vmwgfx_shader.c (vmwgfx)

Vulnerability analysis

The shader creation path validates the user-supplied shader window against its backing buffer by adding the size and offset and comparing to the buffer length, but when the offset is near U64_MAX the unsigned addition wraps to a tiny value that passes the check. The unchecked offset is then stored and forwarded to host SVGA shader-create commands, allowing an attacker to reference memory beyond the buffer. The fix replaces the arithmetic with an overflow-checking helper that detects the wrap and rejects the request if the resulting endpoint exceeds the buffer size. The vulnerable ioctl is reachable from a local process with access to the VMware SVGA device node, which is typically available to users with render node permissions on systems running the vmwgfx driver.

03

BranchIntroducedFixed inPatch commit
6.126.46.12.103d3f44438aa80
6.186.46.18.44cfd163169af3
6.66.46.6.1511bbe7751f5eb
7.16.47.1.85c725901908e
mainline6.47.254d56d5b42d2
cip/6.126.46.12.104-cip30d3f44438aa80

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.104-cip30