CVE-2023-52648: drm/vmwgfx: Unmap the surface before resetting it on a plane state

Published May 1, 2024
·
Updated

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

drm/vmwgfx: Unmap the surface before resetting it on a plane state

Switch to a new plane state requires unreferencing of all held surfaces. In the work required for mob cursors the mapped surfaces started being cached but the variable indicating whether the surface is currently mapped was not being reset. This leads to crashes as the duplicated state, incorrectly, indicates the that surface is mapped even when no surface is present. That's because after unreferencing the surface it's perfectly possible for the plane to be backed by a bo instead of a surface.

Reset the surface mapped flag when unreferencing the plane state surface to fix null derefs in cleanup. Fixes crashes in KDE KWin 6.0 on Wayland:

Oops: 0000 [#1] PREEMPT SMP PTI CPU: 4 PID: 2533 Comm: kwinwayland Not tainted 6.7.0-rc3-vmwgfx #2 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020 RIP: 0010:vmwducursorplanecleanupfb+0x124/0x140 [vmwgfx] Code: 00 00 00 75 3a 48 83 c4 10 5b 5d c3 cc cc cc cc 48 8b b3 a8 00 00 00 48 c7 c7 99 90 43 c0 e8 93 c5 db ca 48 8b 83 a8 00 00 00 <48> 8b 78 28 e8 e3 f> RSP: 0018:ffffb6b98216fa80 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff969d84cdcb00 RCX: 0000000000000027 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff969e75f21600 RBP: ffff969d4143dc50 R08: 0000000000000000 R09: ffffb6b98216f920 R10: 0000000000000003 R11: ffff969e7feb3b10 R12: 0000000000000000 R13: 0000000000000000 R14: 000000000000027b R15: ffff969d49c9fc00 FS: 00007f1e8f1b4180(0000) GS:ffff969e75f00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000028 CR3: 0000000104006004 CR4: 00000000003706f0 Call Trace: <TASK> ? die+0x23/0x70 ? pagefaultoops+0x171/0x4e0 ? excpagefault+0x7f/0x180 ? asmexcpagefault+0x26/0x30 ? vmwducursorplanecleanupfb+0x124/0x140 [vmwgfx] drmatomichelpercleanupplanes+0x9b/0xc0 committail+0xd1/0x130 drmatomichelpercommit+0x11a/0x140 drmatomiccommit+0x97/0xd0 ? pfxdrmprintfninfo+0x10/0x10 drmatomichelperupdateplane+0xf5/0x160 drmmodecursoruniversal+0x10e/0x270 drmmodecursorcommon+0x102/0x230 ? pfxdrmmodecursor2ioctl+0x10/0x10 drmioctlkernel+0xb2/0x110 drmioctl+0x26d/0x4b0 ? pfxdrmmodecursor2ioctl+0x10/0x10 ? pfxdrmioctl+0x10/0x10 vmwgenericioctl+0xa4/0x110 [vmwgfx] x64sysioctl+0x94/0xd0 dosyscall64+0x61/0xe0 ? x64sysioctl+0xaf/0xd0 ? syscallexittousermode+0x2b/0x40 ? dosyscall64+0x70/0xe0 ? x64sysioctl+0xaf/0xd0 ? syscallexittousermode+0x2b/0x40 ? dosyscall64+0x70/0xe0 ? excpagefault+0x7f/0x180 entrySYSCALL64afterhwframe+0x6e/0x76 RIP: 0033:0x7f1e93f279ed Code: 04 25 28 00 00 00 48 89 45 c8 31 c0 48 8d 45 10 c7 45 b0 10 00 00 00 48 89 45 b8 48 8d 45 d0 48 89 45 c0 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff f> RSP: 002b:00007ffca0faf600 EFLAGS: 00000246 ORIGRAX: 0000000000000010 RAX: ffffffffffffffda RBX: 000055db876ed2c0 RCX: 00007f1e93f279ed RDX: 00007ffca0faf6c0 RSI: 00000000c02464bb RDI: 0000000000000015 RBP: 00007ffca0faf650 R08: 000055db87184010 R09: 0000000000000007 R10: 000055db886471a0 R11: 0000000000000246 R12: 00007ffca0faf6c0 R13: 00000000c02464bb R14: 0000000000000015 R15: 00007ffca0faf790 </TASK> Modules linked in: sndseqdummy sndhrtimer nfconntracknetbiosns nfconntrackbroadcast nftfibinet nftfibipv4 nftfibipv6 nftfib nftrejectine> CR2: 0000000000000028 ---[ end trace 0000000000000000 ]--- RIP: 0010:vmwducursorplanecleanupfb+0x124/0x140 [vmwgfx] Code: 00 00 00 75 3a 48 83 c4 10 5b 5d c3 cc cc cc cc 48 8b b3 a8 00 00 00 48 c7 c7 99 90 43 c0 e8 93 c5 db ca 48 8b 83 a8 00 00 00 <48> 8b 78 28 e8 e3 f> RSP: 0018:ffffb6b98216fa80 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff969d84cdcb00 RCX: 0000000000000027 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff969e75f21600 RBP: ffff969d4143 ---truncated---

Other sources

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

drm/vmwgfx: Unmap the surface before resetting it on a plane state

The Linux kernel CVE team has assigned CVE-2023-52648 to this issue.

Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024050122-CVE-2023-52648-4e0d@gregkh/T

Red Hat

Linux Kernel is vulnerable to a denial of service, caused by a flaw related to unreferencing the plane state surface. By sending a specially crafted request, a local authenticated attacker could exploit this vulnerability to cause a denial of service condition.

IBM

Affected Software

12 affected componentsFixes available
IBM Security Verify Governance<=ISVG 10.0.2
IBM Security Verify Governance, Identity Manager Software Stack<=ISVG 10.0.2
IBM Security Verify Governance, Identity Manager Virtual Appliance<=ISVG 10.0.2
IBM Security Verify Governance Identity Manager Container<=ISVG 10.0.2
debian/linux<=6.1.129-1, <=6.1.135-1
5.10.223-15.10.234-16.12.25-16.12.27-1
redhat/kernel<6.6.24
6.6.24
redhat/kernel<6.7.12
6.7.12
redhat/kernel<6.8.3
6.8.3
redhat/kernel<6.9
6.9
Linux Linux kernel>=5.19<6.6.24
Linux Linux kernel>=6.7<6.7.12
Linux Linux kernel>=6.8<6.8.3

Event History

May 1, 2024
CVE Published
via MITRE·05:17 AM
Data Sourced
via MITRE·05:17 AM
Description
Data Sourced
via NVD·06:15 AM
Description
Data Sourced
via NVD·06:15 AM
RemedySeverityWeaknessAffected Software
Data Sourced
via Red Hat·09:54 PM
DescriptionSeverityAffected Software
Jun 8, 2024
Data Sourced
via Launchpad·12:59 AM
Description
Apr 28, 2025
Data Sourced
via Ubuntu·05:09 AM
RemedyDescriptionSeverityAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2023-52648?

CVE-2023-52648 has a moderate severity rating due to the potential impact on system stability in the Linux kernel.

2

How do I fix CVE-2023-52648?

To fix CVE-2023-52648, update to the appropriate kernel version as specified for your distribution: Red Hat kernel 6.6.24 or later, or Debian linux versions including 6.1.123-1.

3

What systems are affected by CVE-2023-52648?

CVE-2023-52648 affects certain versions of the Linux kernel used in both Red Hat and Debian operating systems.

4

What components does CVE-2023-52648 involve?

CVE-2023-52648 involves the drm/vmwgfx component of the Linux kernel, specifically related to handling surfaces during plane state transitions.

5

Is there a workaround for CVE-2023-52648?

There is no known workaround for CVE-2023-52648; it is recommended to apply the updated kernel versions to resolve the vulnerability.

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
CVE-2023-52648 - drm/vmwgfx: Unmap the surface before resetting it on a plane state - SecAlerts