Skip to main content
Vulnerability Database/CVE-2026-80700

CVE-2026-80700: Linux Kernel DRM VMWgfx Buffer Overflow

CVE-2026-80700 is a buffer overflow flaw in the Linux kernel DRM VMWgfx driver that allows attackers to write beyond memory boundaries through crafted atomic commits. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-80700 Overview

CVE-2026-80700 is an out-of-bounds write vulnerability in the Linux kernel's VMware graphics driver (drm/vmwgfx). The flaw resides in the vmw_external_bo_copy() function, which trusts caller-supplied offsets, strides, and heights when operating on imported dma-buf vmaps. Attackers with local access to a configured CRTC can submit a crafted atomic commit on an imported framebuffer to reach the vulnerable code path. The resulting memcpy() can run past the end of the mapped buffer, corrupting kernel memory.

Critical Impact

A local attacker with low privileges can trigger kernel memory corruption, potentially leading to privilege escalation, denial of service, or full system compromise on Linux systems running the vmwgfx driver.

Affected Products

  • Linux kernel versions containing the vulnerable drm/vmwgfx driver
  • Systems using VMware virtual graphics acceleration (vmwgfx)
  • Linux distributions shipping affected kernel builds prior to the referenced stable patches

Discovery Timeline

  • 2026-08-28 - CVE-2026-80700 published to NVD
  • 2026-08-29 - Last updated in NVD database

Technical Details for CVE-2026-80700

Vulnerability Analysis

The vulnerability exists in vmw_external_bo_copy() within the drm/vmwgfx kernel driver. The function performs copy operations between buffer objects (BOs) using caller-supplied offsets, strides, and heights derived from Screen Target Display Unit (STDU) and Screen Object Unit (SOU) plane state. Two distinct code paths are affected.

The equal-stride path clamps the memcpy() bound after subtracting offsets from dst_size and src_size. When a supplied offset exceeds the BO size, the unsigned subtraction wraps to a large value, and the resulting memcpy() writes past the end of the vmap. The multiplication dst_stride * height performed as a u32 operation can also overflow.

The non-equal-stride row-by-row path lacks bounds checking entirely. Its loop touches bytes through offset + (height - 1) * stride + width_in_bytes, guarded only by a WARN_ON(dst_stride < width_in_bytes). This allows writes to step past either mapping.

Root Cause

The root cause combines an integer underflow in unsigned arithmetic and missing bounds validation. Insufficient checking of arithmetic operations on user-influenced parameters permits the copy loop to exceed the allocated buffer, classifying this as both an integer overflow and an out-of-bounds write.

Attack Vector

Exploitation requires local access with the ability to submit atomic commits to a configured CRTC on an imported framebuffer. A local user crafts plane state containing malicious offsets, strides, or heights. When the kernel processes the atomic commit, vmw_external_bo_copy() performs the unsafe memory operations, producing an out-of-bounds write in kernel address space.

No verified public exploit code is available. See the Kernel.org patch commit 042ca38 for the technical fix details.

Detection Methods for CVE-2026-80700

Indicators of Compromise

  • Unexpected kernel WARN_ON or oops messages referencing vmw_external_bo_copy or the vmwgfx driver in dmesg output
  • Kernel panics or memory corruption events on systems running the VMware graphics driver
  • Unusual atomic commit failures or DRM subsystem errors from unprivileged user sessions

Detection Strategies

  • Monitor kernel logs for stack traces originating in drm/vmwgfx copy paths
  • Audit installed kernel versions against the fixed commits published on kernel.org stable branches
  • Correlate local user activity with graphics subsystem errors to identify potential exploitation attempts

Monitoring Recommendations

  • Enable auditd rules to log processes interacting with /dev/dri/* device nodes
  • Deploy endpoint telemetry to flag unexpected privilege escalation following graphics-related kernel events
  • Track patch compliance across virtualized Linux fleets where vmwgfx is loaded

How to Mitigate CVE-2026-80700

Immediate Actions Required

  • Apply the upstream Linux kernel patches referenced by the fix commits and reboot affected systems
  • Inventory Linux virtual machines running under VMware hypervisors and confirm the vmwgfx driver status
  • Restrict local shell access on multi-user systems until patches are deployed

Patch Information

The fix validates the exact row-copy endpoint against each BO's size up front using check_mul_overflow() and check_add_overflow(). The bulk memcpy() path is used only when width_in_bytes covers the whole stride; otherwise a row-by-row copy preserves partial-row updates. The patch also rejects zero strides and any stride less than width_in_bytes. Reference the fix commits: 042ca38, 4e0f669, 5e4a2d1, 706c93c, and e7b25a6.

Workarounds

  • Blacklist the vmwgfx module on systems that do not require VMware SVGA acceleration by adding blacklist vmwgfx to /etc/modprobe.d/
  • Limit local user access and enforce least-privilege on multi-tenant Linux hosts to reduce local attack surface
  • Where feasible, switch guest graphics to an alternate virtual display adapter until kernel patches are applied

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.