Skip to main content

CVE-2023-52648: Vulnerability in Linux Linux

Medium
VulnerabilityCVE-2023-52648cvecve-2023-52648
Published: Wed May 01 2024 (05/01/2024, 05:17:02 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

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: kwin_wayland 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:vmw_du_cursor_plane_cleanup_fb+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 ? page_fault_oops+0x171/0x4e0 ? exc_page_fault+0x7f/0x180 ? asm_exc_page_fault+0x26/0x30 ? vmw_du_cursor_plane_cleanup_fb+0x124/0x140 [vmwgfx] drm_atomic_helper_cleanup_planes+0x9b/0xc0 commit_tail+0xd1/0x130 drm_atomic_helper_commit+0x11a/0x140 drm_atomic_commit+0x97/0xd0 ? __pfx___drm_printfn_info+0x10/0x10 drm_atomic_helper_update_plane+0xf5/0x160 drm_mode_cursor_universal+0x10e/0x270 drm_mode_cursor_common+0x102/0x230 ? __pfx_drm_mode_cursor2_ioctl+0x10/0x10 drm_ioctl_kernel+0xb2/0x110 drm_ioctl+0x26d/0x4b0 ? __pfx_drm_mode_cursor2_ioctl+0x10/0x10 ? __pfx_drm_ioctl+0x10/0x10 vmw_generic_ioctl+0xa4/0x110 [vmwgfx] __x64_sys_ioctl+0x94/0xd0 do_syscall_64+0x61/0xe0 ? __x64_sys_ioctl+0xaf/0xd0 ? syscall_exit_to_user_mode+0x2b/0x40 ? do_syscall_64+0x70/0xe0 ? __x64_sys_ioctl+0xaf/0xd0 ? syscall_exit_to_user_mode+0x2b/0x40 ? do_syscall_64+0x70/0xe0 ? exc_page_fault+0x7f/0x180 entry_SYSCALL_64_after_hwframe+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 ORIG_RAX: 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: snd_seq_dummy snd_hrtimer nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_ine> CR2: 0000000000000028 ---[ end trace 0000000000000000 ]--- RIP: 0010:vmw_du_cursor_plane_cleanup_fb+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---

AI-Powered Analysis

AILast updated: 07/01/2025, 05:13:12 UTC

Technical Analysis

CVE-2023-52648 is a vulnerability identified in the Linux kernel's drm/vmwgfx driver, which is responsible for managing graphics rendering in VMware virtualized environments. The flaw arises from improper handling of plane state surfaces during state transitions. Specifically, when switching to a new plane state, all previously held surfaces must be unreferenced and unmapped. However, due to a logic error, the variable tracking whether a surface is currently mapped was not reset correctly after unreferencing. This leads to a situation where the duplicated state incorrectly indicates that a surface remains mapped even when none is present. Consequently, this can cause null pointer dereferences during cleanup operations, resulting in kernel crashes (null dereference faults). The issue was observed to cause crashes in KDE KWin 6.0 running on Wayland within VMware virtual platforms, as evidenced by kernel oops logs showing faults in the vmw_du_cursor_plane_cleanup_fb function within the vmwgfx module. The vulnerability is rooted in the caching of mapped surfaces introduced for mobile cursors, where the mapped flag was not properly reset. This bug can lead to system instability and denial of service due to kernel panics or crashes when the graphics driver attempts to clean up plane states. The vulnerability affects Linux kernel versions containing the flawed vmwgfx driver code prior to the patch that resets the surface mapped flag correctly during plane state unreferencing. No known exploits in the wild have been reported, and no CVSS score has been assigned yet. The vulnerability is particularly relevant in virtualized environments running VMware with Linux guests using the affected kernel versions and graphical stack components like KDE KWin on Wayland.

Potential Impact

For European organizations, this vulnerability poses a risk primarily to systems running Linux in VMware virtualized environments, especially those utilizing graphical interfaces such as KDE on Wayland. The impact includes potential denial of service due to kernel crashes triggered by the graphics driver mishandling plane state transitions. This can disrupt critical services, user sessions, and graphical applications, leading to productivity loss and operational interruptions. Organizations relying on virtual desktop infrastructure (VDI), cloud services, or development environments hosted on VMware with Linux guests may experience instability or forced reboots. While the vulnerability does not appear to allow privilege escalation or remote code execution, the resulting system crashes can affect availability and reliability of services. In sectors such as finance, healthcare, and government within Europe, where Linux-based virtualized systems are common, such disruptions could have significant operational consequences. Additionally, the vulnerability could complicate incident response and system maintenance due to unexpected kernel panics. Since no active exploitation is known, the immediate threat level is moderate, but the potential for denial of service in critical environments warrants timely remediation.

Mitigation Recommendations

To mitigate this vulnerability, European organizations should: 1) Apply the latest Linux kernel updates that include the fix resetting the surface mapped flag during plane state unreferencing in the vmwgfx driver. 2) Prioritize patching Linux systems running as VMware guests, especially those using KDE KWin on Wayland or similar graphical environments. 3) In virtualized environments, consider temporarily disabling or limiting graphical acceleration features related to vmwgfx if patching is delayed, to reduce exposure. 4) Monitor system logs for kernel oops or crash reports related to vmwgfx or drm modules to detect potential triggering of this issue. 5) Test kernel updates in staging environments replicating VMware virtual platforms to ensure stability before wide deployment. 6) Maintain updated VMware tools and guest additions to ensure compatibility with patched kernels. 7) Implement robust backup and recovery procedures to minimize downtime in case of crashes. 8) Educate system administrators and support teams about this specific vulnerability to improve detection and response. These steps go beyond generic advice by focusing on the specific driver, virtualization context, and graphical environment involved.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-03-06T09:52:12.094Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9830c4522896dcbe71e4

Added to database: 5/21/2025, 9:09:04 AM

Last enriched: 7/1/2025, 5:13:12 AM

Last updated: 8/3/2025, 6:58:00 AM

Views: 13

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats