HIGH Introduced in 6.4
vmwgfx ShaderDefine Overflow
CVE-2026-80887
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
01Description
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.
02KernelScan AI Analysis
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.
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.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.4 | 6.12.103 | d3f44438aa80 |
| 6.18 | 6.4 | 6.18.44 | cfd163169af3 |
| 6.6 | 6.4 | 6.6.151 | 1bbe7751f5eb |
| 7.1 | 6.4 | 7.1.8 | 5c725901908e |
| mainline | 6.4 | 7.2 | 54d56d5b42d2 |
| cip/6.12 | 6.4 | 6.12.104-cip30 | d3f44438aa80 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.104-cip30 |