CVE-2023-54098 in Linuxinfo

Summary

by MITRE • 12/24/2025

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

drm/i915/gvt: fix gvt debugfs destroy

When gvt debug fs is destroyed, need to have a sane check if drm minor's debugfs root is still available or not, otherwise in case like device remove through unbinding, drm minor's debugfs directory has already been removed, then intel_gvt_debugfs_clean() would act upon dangling pointer like below oops.

i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x1926_rid_0x0a.golden_hw_state failed with error -2 i915 0000:00:02.0: MDEV: Registered Console: switching to colour dummy device 80x25 i915 0000:00:02.0: MDEV: Unregistering BUG: kernel NULL pointer dereference, address: 00000000000000a0 PGD 0 P4D 0 Oops: 0002 [#1] PREEMPT SMP PTI
CPU: 2 PID: 2486 Comm: gfx-unbind.sh Tainted: G I 6.1.0-rc8+ #15 Hardware name: Dell Inc. XPS 13 9350/0JXC1H, BIOS 1.13.0 02/10/2020 RIP: 0010:down_write+0x1f/0x90 Code: 1d ff ff 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 53 48 89 fb e8 62 c0 ff ff bf 01 00 00 00 e8 28 5e 31 ff 31 c0 ba 01 00 00 00 <f0> 48 0f b1 13 75 33 65 48 8b 04 25 c0 bd 01 00 48 89 43 08 bf 01 RSP: 0018:ffff9eb3036ffcc8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 00000000000000a0 RCX: ffffff8100000000 RDX: 0000000000000001 RSI: 0000000000000064 RDI: ffffffffa48787a8 RBP: ffff9eb3036ffd30 R08: ffffeb1fc45a0608 R09: ffffeb1fc45a05c0 R10: 0000000000000002 R11: 0000000000000000 R12: 0000000000000000 R13: ffff91acc33fa328 R14: ffff91acc033f080 R15: ffff91acced533e0 FS: 00007f6947bba740(0000) GS:ffff91ae36d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000a0 CR3: 00000001133a2002 CR4: 00000000003706e0 Call Trace: <TASK> simple_recursive_removal+0x9f/0x2a0 ? start_creating.part.0+0x120/0x120 ? _raw_spin_lock+0x13/0x40 debugfs_remove+0x40/0x60 intel_gvt_debugfs_clean+0x15/0x30 [kvmgt]
intel_gvt_clean_device+0x49/0xe0 [kvmgt]
intel_gvt_driver_remove+0x2f/0xb0 i915_driver_remove+0xa4/0xf0 i915_pci_remove+0x1a/0x30 pci_device_remove+0x33/0xa0 device_release_driver_internal+0x1b2/0x230 unbind_store+0xe0/0x110 kernfs_fop_write_iter+0x11b/0x1f0 vfs_write+0x203/0x3d0 ksys_write+0x63/0xe0 do_syscall_64+0x37/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f6947cb5190 Code: 40 00 48 8b 15 71 9c 0d 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 80 3d 51 24 0e 00 00 74 17 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 58 c3 0f 1f 80 00 00 00 00 48 83 ec 28 48 89 RSP: 002b:00007ffcbac45a28 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 000000000000000d RCX: 00007f6947cb5190 RDX: 000000000000000d RSI: 0000555e35c866a0 RDI: 0000000000000001 RBP: 0000555e35c866a0 R08: 0000000000000002 R09: 0000555e358cb97c R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000001 R13: 000000000000000d R14: 0000000000000000 R15: 0000555e358cb8e0 </TASK> Modules linked in: kvmgt CR2: 00000000000000a0 ---[ end trace 0000000000000000 ]---

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 01/03/2026

The vulnerability identified as CVE-2023-54098 resides within the Linux kernel's graphics virtualization technology implementation, specifically within the drm/i915/gvt subsystem. This issue manifests during the cleanup process of virtual GPU debug filesystem entries when a device is removed through unbinding operations. The flaw stems from a missing validation check that determines whether the drm minor's debugfs root directory is still accessible before attempting to perform cleanup operations. This oversight leads to a potential null pointer dereference condition when intel_gvt_debugfs_clean() attempts to operate on a dangling pointer, resulting in a kernel oops and system instability. The vulnerability is particularly concerning as it occurs during device removal scenarios, which are common during system maintenance, hot-plugging operations, or virtual machine shutdowns.

The technical root cause of this vulnerability aligns with CWE-476, which describes a null pointer dereference condition. The kernel's device removal flow involves multiple components including the i915 driver, kvmgt module, and debugfs subsystem. When a graphics device is unbound, the drm minor's debugfs directory structure is already removed from the filesystem hierarchy, but the cleanup function intel_gvt_debugfs_clean() does not verify that the debugfs root directory is still valid before attempting to access it. This leads to a direct dereference of a null pointer at address 0x00000000000000a0, causing the kernel to crash with a NULL pointer dereference error. The stack trace demonstrates the call sequence leading to the failure, with debugfs_remove being called on a freed debugfs entry, ultimately resulting in a kernel oops and system termination.

From an operational perspective, this vulnerability presents significant risks to systems utilizing Intel graphics virtualization technology, particularly in virtualized environments where device binding and unbinding operations occur frequently. The impact extends beyond simple system crashes to potentially compromise the stability of virtual machine environments, containerized applications, or any system relying on graphics virtualization. The vulnerability can be exploited through normal device removal operations, making it a latent risk that may not be immediately apparent during system operation. Attackers could potentially leverage this flaw to cause denial of service conditions, especially in cloud or server environments where frequent device management operations occur, or to destabilize systems running graphics-intensive virtualized workloads.

Mitigation strategies for this vulnerability primarily involve applying the kernel patch that implements proper validation checks before debugfs cleanup operations. The fix requires adding a sanity check to ensure that the drm minor's debugfs root directory is still available before attempting to clean up debugfs entries. This approach aligns with ATT&CK technique T1490, which involves creating or deploying malicious code, but in this case, it represents the defensive measure of applying a proper code fix. System administrators should prioritize applying kernel updates that include this patch, particularly in production environments where graphics virtualization is actively used. Additionally, monitoring for kernel oops messages and system crashes related to debugfs cleanup operations can help identify systems that may be vulnerable. Organizations should also consider implementing proper device lifecycle management protocols to minimize the frequency of device binding/unbinding operations where possible, though the primary defense remains the kernel patch that addresses the root cause of the null pointer dereference.

Responsible

Linux

Reservation

12/24/2025

Disclosure

12/24/2025

Moderation

accepted

CPE

ready

EPSS

0.00175

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!