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

CVE-2026-80701: Linux Kernel DRM VMWgfx Privilege Escalation

CVE-2026-80701 is a privilege escalation vulnerability in the Linux kernel DRM VMWgfx driver that allows attackers to trigger a kernel oops through oversized cursor dimensions. This post covers technical details, impact, and mitigation.

Published:

CVE-2026-80701 Overview

CVE-2026-80701 is a NULL pointer dereference vulnerability in the Linux kernel's drm/vmwgfx driver. The flaw resides in the cursor plane handling logic used by the VMware SVGA graphics driver. vmw_cursor_plane_atomic_check() enforces cursor width and height limits only on the legacy update path. The SVGA_CAP2_CURSOR_MOB path, which is the default on modern hosts, accepts any size. A local user with DRM master access can trigger a kernel oops through DRM_IOCTL_MODE_CURSOR2 by supplying cursor dimensions that exceed SVGA_REG_CURSOR_MAX_DIMENSION or SVGA_REG_MOB_MAX_SIZE.

Critical Impact

Local denial of service through a kernel NULL pointer dereference reachable from any DRM master via the cursor ioctl on affected Linux guests running under VMware.

Affected Products

  • Linux kernel drm/vmwgfx driver on hosts exposing SVGA_CAP2_CURSOR_MOB
  • Linux guests running under VMware hypervisors using the vmwgfx graphics stack
  • Stable kernel branches prior to the fixes referenced in the upstream commits

Discovery Timeline

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

Technical Details for CVE-2026-80701

Vulnerability Analysis

The vmw_cursor_plane_atomic_check() function validates cursor dimensions only for the legacy update path. When the driver operates under SVGA_CAP2_CURSOR_MOB, oversized cursors bypass the dimension check. vmw_cursor_mob_get() then rejects the allocation with -EINVAL because the requested size exceeds SVGA_REG_CURSOR_MAX_DIMENSION or SVGA_REG_MOB_MAX_SIZE, leaving vps->cursor.mob set to NULL.

The return value from vmw_cursor_mob_get() is discarded inside vmw_cursor_plane_prepare_fb(). The subsequent call chain reaches vmw_cursor_update_mob(), which invokes vmw_bo_map_and_cache(NULL). The dereference occurs inside vmw_bo_map_and_cache_size() when loading tbo.base.size from the NULL buffer object.

Root Cause

The root cause is missing input validation on the MOB-backed cursor update path combined with an ignored error return. The atomic check enforces bounds only for the legacy path, and the prepare_fb stage does not propagate allocation failures. An additional 32-bit multiplication in the MOB size computation can overflow when very large dimensions are supplied.

Attack Vector

Any process holding DRM master privileges can invoke DRM_IOCTL_MODE_CURSOR2 with a width or height greater than cursor_max_dim + 1. The kernel then dereferences a NULL pointer inside the vmwgfx code path, producing a kernel oops. The result is a local denial of service against the affected guest kernel.

No verified public exploit code is available. See the upstream commits for the technical fix details: 1eb4f79, 9109b79, and d5ed874.

Detection Methods for CVE-2026-80701

Indicators of Compromise

  • Kernel oops entries in dmesg or /var/log/kern.log referencing vmw_bo_map_and_cache_size or vmw_cursor_update_mob
  • Unexpected DRM master processes issuing DRM_IOCTL_MODE_CURSOR2 calls with abnormally large width or height parameters
  • Repeated graphics subsystem crashes on VMware-hosted Linux guests running vmwgfx

Detection Strategies

  • Monitor kernel ring buffer output for NULL pointer dereference stack traces originating in the drm/vmwgfx module
  • Audit processes with DRM master capability and correlate ioctl activity with cursor plane operations
  • Track kernel crash telemetry across VMware-hosted Linux fleets to identify clustered vmwgfx failures

Monitoring Recommendations

  • Ingest dmesg, journald, and /var/log/kern.log into a central log platform and alert on vmwgfx oops signatures
  • Baseline normal cursor ioctl activity and flag processes issuing atypical dimensions to the DRM subsystem
  • Track kernel package versions across VMware guest inventories to identify hosts pending the upstream fix

How to Mitigate CVE-2026-80701

Immediate Actions Required

  • Apply the upstream Linux kernel patches referenced in the stable tree commits 1eb4f79, 9109b79, and d5ed874
  • Update to a distribution kernel that includes the vmwgfx cursor size enforcement fix
  • Restrict DRM master access to trusted users on multi-tenant Linux guests running under VMware

Patch Information

The fix rejects oversized cursors in atomic_check for both MOB-backed cursor update types, computes the required MOB size in 64-bit to avoid overflow, and only calls vmw_cursor_mob_get() and vmw_cursor_mob_map() for VMW_CURSOR_UPDATE_MOB. The update path degrades to NONE when the MOB allocation or mapping fails, preventing execution with a NULL backing MOB. Patches are available in the stable kernel tree at commits 1eb4f79, 9109b79, and d5ed874.

Workarounds

  • Limit interactive graphical sessions and DRM master privileges to trusted local accounts until patches are applied
  • Consider switching Linux guests to an alternative graphics driver where feasible until the vmwgfx fix is deployed
  • Enable kernel crash reporting so vmwgfx oops events are captured and triaged rapidly

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.