CVE-2026-80701: drm/vmwgfx: enforce cursor size limits for MOB cursors

Published Aug 28, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

drm/vmwgfx: enforce cursor size limits for MOB cursors

vmwcursorplaneatomiccheck() bounds cursor width and height only on the legacy update path; the SVGACAP2CURSORMOB path -- the default on modern hosts -- accepts any size. When the requested size exceeds SVGAREGCURSORMAXDIMENSION or SVGAREGMOBMAXSIZE, vmwcursormobget() returns -EINVAL and leaves vps->cursor.mob NULL. Its return value is then discarded in vmwcursorplanepreparefb(), so the subsequent vmwcursorupdatemob() calls vmwbomapandcache(NULL) and oopses inside vmwbomapandcachesize() on the tbo.base.size load.

Reachable from any DRM master via DRMIOCTLMODECURSOR2 with a sufficiently large width or height (e.g. cursormaxdim + 1).

Reject oversized cursors in atomiccheck for both MOB-backed cursor update types. The MOB byte-size limit only applies to the SVGACAP2CURSORMOB path (vmwcursormobsize() returns 0 for GBONLY); compute the required MOB size in 64-bit to avoid overflow when very large dimensions are requested.

In preparefb only call vmwcursormobget()/map() for VMWCURSORUPDATEMOB -- the GBONLY path uses bo->map.virtual directly and would otherwise be silently downgraded to NONE on hosts without SVGACAP2CURSORMOB (where vmwcursormobget() always returns -EINVAL). Degrade the update to NONE if vmwcursormobget() or vmwcursormobmap() fails so the update path does not run with a NULL backing MOB.

Affected Software

1 affected component
Linux Linux kernel

Event History

Aug 28, 2026
CVE Published
via MITRE·06:53 AM
Data Sourced
via MITRE·06:53 AM
Description

Frequently Asked Questions

1

Who can trigger the crash?

Any DRM master can reach the vulnerable path through DRM_IOCTL_MODE_CURSOR2 by requesting a cursor with sufficiently large width or height. This is not limited to a particular application in the provided data.

2

Are modern default configurations affected?

Yes. The affected SVGA_CAP2_CURSOR_MOB cursor path is described as the default on modern hosts. The issue occurs when an oversized cursor causes MOB allocation to fail and the failure is ignored.

3

What input is needed to exploit the issue?

An attacker needs DRM-master access and must submit a cursor update whose width or height exceeds the relevant cursor or MOB size limit, such as cursor_max_dim + 1. The resulting NULL MOB pointer can cause a kernel oops during cursor update processing.

4

How is the issue fixed?

The fix rejects oversized cursor dimensions during atomic checking for both MOB-backed cursor update types. It also calculates required MOB size using 64-bit arithmetic and restricts MOB get/map operations to the MOB update path.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203