CVE-2024-57918 in Linux
Zusammenfassung
von VulDB • 18.05.2026
Based on the kernel stack trace provided, here is an analysis of the issue, its cause, and potential solutions.
### **1. Summary of the Issue** * **Error Type:** `exc_page_fault` (Page Fault) in kernel space. * **Subsystem:** AMDGPU driver (`amdgpu`). * **Specific Function:** `copy_stream_update_to_stream.isra.0` within `dc_commit_state_no_check`. * **Context:** The crash occurs during a display state commit (`amdgpu_dm_atomic_commit_tail`), specifically when updating planes and streams (`update_planes_and_stream_v2`). * **Root Cause:** A **NULL pointer dereference** or invalid memory access while copying stream update data in the AMDGPU Display Core (DC) subsystem.
---
### **2. Detailed Analysis**
#### **Key Stack Trace Points** 1. **`exc_page_fault+0x7e/0x180`**: The CPU attempted to access a memory address that was not mapped or was invalid. 2. **`copy_stream_update_to_stream.isra.0+0x30d/0x750 [amdgpu]`**: This is the **critical function** where the fault occurred. It is responsible for copying updated stream configuration data (resolution, refresh rate, color space, etc.) from a temporary structure to the active stream structure.
3. **`dc_commit_state_no_check+0xd6c/0xe70 [amdgpu]`**: The Display Core is committing a new display state without performing full validation checks (likely for performance or because checks were done earlier).
4. **`update_planes_and_stream_v2+0x24a/0x590 [amdgpu]`**: This function orchestrates the update of display planes (overlays, cursors) and streams.
5. **`amdgpu_dm_atomic_commit_tail+0x159f/0x3a30 [amdgpu]`**: The tail end of the atomic commit process in the DRM (Direct Rendering Manager) subsystem.
#### **Why Did This Happen?** The most likely causes are: 1. **NULL Pointer Dereference:** The function `copy_stream_update_to_stream` tried to access a member of a structure that was `NULL`. This often happens if: * A stream object was not properly initialized. * A plane object was freed or invalidated before the commit completed. * A connector or encoder reference was stale. 2. **Use-After-Free:** The memory being copied had already been freed by another part of the driver (e.g., during a mode set or hotplug event). 3. **Race Condition:** A concurrent operation (like a hotplug event or GPU reset) modified the display state while the commit was in progress. 4. **Bug in AMDGPU DC Driver:** This is a known class of bugs in the AMDGPU driver, especially during complex multi-monitor setups, HDR transitions, or when using specific display ports (DP/HDMI) with certain adapters.
---
### **3. Solutions & Workarounds**
#### **A. Immediate Workarounds** 1. **Reboot:** If the system is frozen or unstable, a reboot is necessary. 2. **Disable Hardware Acceleration:** If this happens during video playback or desktop compositing, try disabling hardware acceleration in your browser or desktop environment. 3. **Change Display Configuration:** * Disconnect extra monitors. * Try a different cable or port (e.g., switch from DP to HDMI). * Reduce resolution/refresh rate.
#### **B. Software Fixes** 1. **Update Kernel:** * This issue is likely fixed in newer kernel versions. The stack trace mentions `cherry picked from commit 1c86c81a86c60f9b15d3e3f43af0363cf56063e7`, which suggests this is a backport of a fix. Ensure you are running the **latest stable kernel** for your distribution. * Check if your distribution has a newer kernel available (e.g., via `linux-next` or a PPA).
2. **Update AMDGPU Driver/Firmware:** * Ensure you have the latest `linux-firmware` package installed. * If using a custom kernel, ensure the AMDGPU module is up to date.
3. **Disable Suspend/Resume Issues:** * If this happens after waking from suspend, try disabling suspend: ```bash sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target ``` *
If you want to get the best quality for vulnerability data then you always have to consider VulDB.