CVE-2026-98523

CVE-2026-98523

published October 18, 2026

CVSS
—
EPSS
0%
Percentile
10.5
In the wild
Unconfirmed
What it is

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

drm/client: fix restore of partially initialized client

I got a null-ptr-deref report when closing a DRM file descriptor:

WARNING: drivers/gpu/drm/drm_atomic.c:2031 at

__drm_atomic_helper_set_config+0x18e/0x1b0 [drm]

Call Trace:

drm_client_modeset_commit_atomic+0x16b/0x220 [drm]

drm_client_modeset_commit_locked+0x56/0x160 [drm]

drm_client_modeset_commit+0x21/0x40 [drm]

__drm_fb_helper_restore_fbdev_mode_unlocked.part.0+0x7b/0x80

drm_fbdev_client_restore+0xe/0x20 [drm_client_lib]

drm_client_dev_restore+0x9f/0xc0 [drm]

drm_release+0xc5/0xe0 [drm]

The warning is followed by a NULL pointer dereference:

BUG: kernel NULL pointer dereference, address: 0000000000000008

RIP:

__drm_fb_helper_restore_fbdev_mode_unlocked.part.0+0x41/0x80

[drm_kms_helper]

Call Trace:

drm_fbdev_client_restore+0xe/0x20 [drm_client_lib]

drm_client_dev_restore+0x9f/0xc0 [drm]

drm_release+0xc5/0xe0 [drm]

__fput+0xdc/0x2b0

__x64_sys_close+0x39/0x80

do_syscall_64+0x8d/0x460

entry_SYSCALL_64_after_hwframe+0x76/0x7e

drm_client_register() adds the DRM client to the device client list

before invoking the initial hotplug callback. If the hotplug callback

fails, the client remains registered.

For the fbdev client, a failure during drm_fb_helper_initial_config()

causes the partially initialized fbdev helper to be cleaned up.

drm_fb_helper_fini() releases fb_helper->info and leaves it NULL.

The fbdev client therefore remains registered even though there is no

fully initialized framebuffer device.

Later, when userspace closes the DRM file descriptor, drm_release()

can invoke the restore callbacks of registered DRM clients:

drm_release()

drm_client_dev_restore()

drm_fbdev_client_restore()

drm_fb_helper_restore_fbdev_mode_unlocked()

drm_fbdev_client_restore() currently restores the fbdev state

unconditionally. For a partially initialized fbdev client this can

submit an incomplete modeset state and subsequently access fbdev

state which has not been initialized, resulting in the warning and

NULL pointer dereference above.

drm_fbdev_client_unregister() already uses fb_helper->info to

distinguish a fully probed framebuffer device from a partially

initialized client.

Use the same condition in drm_fbdev_client_restore() and skip restore

if no framebuffer device has been successfully initialized.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00209 · 10.5th percentile
Published
2026-10-18T20:17Z
References (4)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:17Z
    drm/client: fix restore of partially initialized client
    cvelistv5
  • 18 OCT 15:17Z
    drm/client: fix restore of partially initialized client
    cvelistv5