CVE-2026-80887 in Linuxinfo

Summary

by MITRE • 09/04/2026

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.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/04/2026

The vulnerability identified within the Linux kernel's VMware graphics driver, specifically in the vmw_shader_define function, represents a critical integer overflow issue that can lead to out-of-bounds memory access. This flaw stems from an insufficient validation of user-supplied shader window parameters against their backing buffer size. The original implementation performed a comparison using unsigned 64-bit integers to ensure that the sum of the shader size and offset did not exceed the allocated buffer size. However, this check was susceptible to arithmetic wraparound because it relied on standard unsigned addition without overflow detection mechanisms. When an attacker supplies an offset value near the maximum limit for a u64 type, specifically close to U64_MAX, adding any positive size value causes the result to wrap around to a small number due to two's complement arithmetic rules. This wrapped value is significantly smaller than the actual buffer size, causing the validation check to incorrectly pass and allowing malicious input to proceed through the security boundary.

The operational impact of this vulnerability is severe as it allows for potential arbitrary code execution or system instability by enabling out-of-bounds writes within kernel memory space. The unbounded offset derived from the wrapped calculation is stored in res->guest_memory_offset and subsequently forwarded to host SVGA shader-create commands. This means that data intended for a specific, limited region of the backing buffer can be written beyond its allocated boundaries into adjacent memory structures. Such behavior violates fundamental memory safety principles and compromises the integrity of the kernel's execution environment. By bypassing these bounds checks, an attacker with access to the graphics interface could potentially exploit this flaw to escalate privileges or crash the system by corrupting critical data structures located immediately after the shader buffer in physical memory.

From a technical remediation perspective, the resolution involves replacing standard unsigned addition operations with explicit overflow-checking functions such as check_add_overflow(). This function safely detects when an arithmetic operation would exceed the maximum representable value for its type and returns an error code instead of allowing silent wraparound. By integrating this safeguard into vmw_shader_define(), the kernel ensures that any attempt to calculate a shader size plus offset that exceeds U64_MAX is immediately rejected before it can be used in subsequent memory operations. This approach aligns with best practices for secure coding in low-level systems programming, where integer overflows are a common source of critical vulnerabilities. The fix effectively closes the gap by ensuring that both logical bounds and arithmetic limits are respected during resource allocation and validation phases.

This vulnerability is categorized under CWE-190 Integer Overflow or Wraparound within the Common Weakness Enumeration framework, which highlights flaws resulting from improper handling of numeric values that exceed their maximum capacity. In terms of attack vectors, this issue relates to CWE-20 Improper Input Validation, as the system failed to adequately sanitize and verify user-controlled data before processing it for memory allocation purposes. Furthermore, in the context of the MITRE ATT&CK framework, such vulnerabilities are often leveraged during initial exploitation phases to achieve arbitrary code execution or privilege escalation by exploiting trust boundaries between user-space applications and kernel-mode drivers. The specific driver involved, vmwgfx, serves as a bridge between guest operating systems and host graphics hardware, making it a high-value target for attackers seeking to compromise virtualized environments.

Mitigation strategies extend beyond the immediate patching of this code defect. System administrators should ensure that their Linux kernels are updated to versions containing this fix, particularly if they utilize VMware virtualization with accelerated 3D graphics enabled. Additionally, implementing strict input validation at higher levels of the application stack can provide defense-in-depth against malformed shader definitions sent by untrusted applications. Security teams monitoring for exploitation attempts should look for anomalous behavior in kernel memory allocation patterns or unexpected crashes related to DRM subsystems. Regular auditing of driver code for similar integer arithmetic vulnerabilities is recommended, as many legacy drivers may contain analogous weaknesses where unsigned additions are used without overflow checks before performing bounds comparisons against buffer sizes.

Responsible

Linux

Reservation

08/26/2026

Disclosure

09/04/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!