CVE-2026-98785 in Linuxinfo

Summary

by MITRE • 10/18/2026

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

drm/amd/display: check dc_state_create_copy() for NULL in dm_suspend

dc_state_create_copy() can return NULL on allocation failure. dm_suspend() only conditionally skips dm_gpureset_toggle_interrupts() and continues execution, returning success. dm_resume() then dereferences the NULL cached_dc_state in link_enc_cfg_copy() and the following dc_state->stream_count loop, crashing during GPU reset recovery.

Return -ENOMEM immediately if the copy fails, so the caller aborts suspend instead of leaving a NULL cached state for resume.

(cherry picked from commit 84b6d7932fdd2857795a257f9f258562a3cddcab)

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

Analysis

by VulDB Data Team • 10/18/2026

The Linux kernel's Direct Rendering Manager subsystem, specifically within the AMD display driver component known as dm_suspend and its associated power management routines, contains a critical null pointer dereference vulnerability. This flaw arises from an insufficient error handling mechanism during the system suspend process when dealing with memory allocation for display controller state structures. The function dc_state_create_copy is responsible for creating a duplicate of the current display configuration state to preserve it across sleep states. However, this function can return NULL if the underlying kernel memory allocator fails due to resource exhaustion or fragmentation. In the original implementation, dm_suspend did not adequately check for this failure condition before proceeding with subsequent operations that rely on the validity of the cached display state pointer.

When dc_state_create_copy returns NULL indicating an allocation failure, the existing code logic only conditionally skips certain interrupt toggling functions but continues execution and ultimately reports success to the caller. This creates a dangerous inconsistency where the system believes it has successfully saved its display state for resume operations, while in reality, no valid copy was created. Consequently, when the system attempts to wake from suspend via dm_resume, it proceeds with recovery procedures that assume the cached_dc_state pointer is valid and points to an allocated memory structure containing stream configuration data.

The operational impact of this vulnerability manifests as a kernel panic or system crash during GPU reset recovery after resuming from sleep. Specifically, within link_enc_cfg_copy and subsequent loops iterating over dc_state->stream_count, the code attempts to dereference the NULL cached_dc_state pointer. This null pointer dereference triggers an immediate fault in kernel space, leading to a denial of service for the affected system. For end users, this results in unpredictable crashes upon waking their devices from suspend mode, particularly on systems with AMD graphics hardware where display state management is complex and memory-intensive during power transitions.

From a security perspective, while primarily causing availability issues through crash conditions rather than direct privilege escalation or data exfiltration, such null pointer dereferences can sometimes be leveraged in sophisticated attack scenarios to disrupt critical infrastructure services or trigger specific kernel code execution paths if combined with other vulnerabilities. The vulnerability aligns with CWE-476, which describes a NULL Pointer Dereference weakness where software fails to check for the presence of an expected object before using it. Additionally, this flaw relates to improper input validation and error handling practices that are often categorized under broader categories like CWE-252: Unchecked Return Value or CWE-391: Unchecked Error Condition.

The remediation strategy involves modifying dm_suspend to strictly validate the return value of dc_state_create_copy before proceeding with any operations dependent on its result. If the allocation fails and returns NULL, the function must immediately abort the suspend process by returning an appropriate error code such as -ENOMEM rather than continuing execution or reporting success. This ensures that if memory resources are insufficient to maintain display state integrity across power transitions, the system will not enter a corrupted sleep state from which it cannot safely recover. By failing fast during suspension when critical data structures cannot be preserved, the kernel avoids entering an inconsistent state that leads to crashes upon resume.

Mitigation for this issue requires applying the specific patch referenced in commit 84b6d7932fdd2857795a258562a3cddcab which enforces strict error checking on memory allocation calls within display driver suspend routines. System administrators should ensure their Linux kernels are updated to versions containing this fix, particularly for desktop and mobile systems utilizing AMD graphics processors where frequent sleep-wake cycles occur. Regular kernel updates remain the primary defense against such low-level resource management flaws that compromise system stability during power state transitions.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/18/2026

Moderation

accepted

EPSS

0.00180

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!