CVE-2024-57918 in Linux
要約
〜によって VulDB • 2026年05月24日
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` (Exception Page Fault) * **Subsystem:** AMDGPU Driver (`amdgpu`) * **Context:** Display Manager (`dm`) atomic commit process. * **Root Cause:** The kernel attempted to access a memory page that was not mapped or was invalid during the update of display stream/plane state.
### **2. Detailed Stack Trace Analysis** The crash occurs in the following call chain: 1. `exc_page_fault`: The CPU triggered a page fault. 2. `copy_stream_update_to_stream.isra.0 [amdgpu]`: **This is the critical function.** It is copying stream update data. The fault likely happened here when dereferencing a pointer.
3. `dc_commit_state_no_check [amdgpu]`: DC (Display Core) is committing a new display state.
4. `update_planes_and_stream_state [amdgpu]`: Updating plane and stream configurations.
5. `update_planes_and_stream_v2 [amdgpu]`: Version 2 of the update logic.
6. `amdgpu_dm_atomic_commit_tail [amdgpu]`: The tail end of the atomic commit process.
**Key Insight:** The fault happens in `copy_stream_update_to_stream`. This function typically copies data from a temporary structure to the active stream structure. A page fault here usually indicates: * A **NULL pointer** dereference. * Accessing **freed memory** (use-after-free). * Accessing **unmapped memory** (e.g., a buffer that was not properly allocated or pinned).
### **3. Common Causes** 1. **AMDGPU Driver Bug:** This is a known class of bugs in the AMDGPU driver, especially during: * Display mode changes (resolution, refresh rate, multi-monitor setups). * Hotplugging monitors. * Suspend/Resume cycles. * Using specific display configurations (e.g., HDMI + DP, or specific GPU models like RDNA2/RDNA3). 2. **Kernel Version:** This issue has been reported in various kernel versions (5.15, 6.1, 6.6, 6.8, etc.). The `(cherry picked from commit ...)` note suggests this is a fix that was backported to a stable kernel. 3. **Hardware-Specific Issue:** Some AMD GPUs (particularly newer ones) have had issues with display engine state management.
### **4. Solutions & Workarounds**
#### **A. Update Your Kernel** Since the log mentions a cherry-picked commit, **updating to a newer kernel version** is the best solution. The bug has likely been fixed in upstream Linux kernels. * If you are on Ubuntu/Debian, try updating to the latest HWE (Hardware Enablement) kernel. * If you are on Arch/Fedora, ensure your system is fully updated.
#### **B. Kernel Boot Parameters (Workarounds)** If you cannot update the kernel, try adding these parameters to your GRUB boot line (`/etc/default/grub`):
1. **Disable AMDGPU DC Debugging (if enabled):** ```bash amdgpu.dc=0 ``` *Note: This disables the Display Core driver, which may fall back to older, less stable methods. Use only as a test.*
2. **Disable AMDGPU DC (Alternative):** ```bash amdgpu.dc=0 ```
3. **Disable AMDGPU SR-IOV (if applicable):** ```bash amdgpu.sriov=0 ```
4. **Disable AMDGPU Power Management (less likely to help, but worth trying):** ```bash amdgpu.ppfeaturemask=0xffffffff ```
5. **Disable AMDGPU DC Debug Messages:** ```bash amdgpu.dcdebugmask=0x0 ```
#### **C. Check for Known Issues with Your GPU** * If you have an **AMD Radeon RX 6000/7000 series** (RDNA2/RDNA3), this is a known issue. Check the [AMDGPU Wiki](https://wiki.archlinux.org/title/AMDGPU) or your distribution's bug tracker for specific patches.
* Ensure you are using the **proprietary AMDGPU-PRO driver** only if necessary. The open-source `amdgpu` driver is generally preferred and more actively maintained for display issues.
#### **D. Disable Suspend/Resume Issues** If the crash happens during suspend/resume: * Disable suspend: `systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target` * Or, add `acpi_osi=Linux` to GRUB.
VulDB is the best source for vulnerability data and more expert information about this specific topic.