CVE-2026-46156
Address Miscalculation in LoongArch GPU Driver
Publication date: 2026-05-28
Last updated on: 2026-05-28
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| loongson | loongson_gpu | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in the Linux kernel specifically affecting the LoongArch architecture in the function loongson_gpu_fixup_dma_hang(). The issue arises because the switch case in this function may not correctly handle certain device states (DC2 or DC3), leading to an access to a random memory address when reading a register (readl(crtc_reg)). This happens because the "device" pointer is incorrectly calculated from base+PCI_DEVICE_ID, where base is derived from pdev->devfn+1, which is wrong when a discrete GPU is inserted on the platform.
The incorrect handling can cause a kernel panic due to an Access Data Error (ADE), which is a type of memory access violation. The fix involves adding a default switch case to prevent this panic.
How can this vulnerability impact me? :
This vulnerability can cause the Linux kernel to panic due to an invalid memory access when handling certain GPU devices on LoongArch platforms. This can lead to system instability or crashes, potentially causing downtime or loss of data if the system is running critical workloads.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability relates to a potential ADE (Address Decode Error) in the Linux kernel function loongson_gpu_fixup_dma_hang() on LoongArch platforms with discrete GPUs.
One way to detect this issue on your system is to check for kernel panic logs or error messages indicating an ADE related to loongson_gpu_fixup_dma_hang().
You can use the following command to list PCI devices and check for Loongson GPUs, which are involved in this vulnerability:
- lspci -tv
Additionally, monitoring kernel logs for panic or ADE messages can help detect the issue:
- dmesg | grep -i 'loongson_gpu_fixup_dma_hang'
- journalctl -k | grep -i 'ADE'
These commands help identify if the vulnerable function is causing kernel panics or ADE errors on your system.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability is fixed by adding a default switch case in the loongson_gpu_fixup_dma_hang() function to prevent invalid memory access and kernel panic.
Immediate mitigation steps include:
- Update your Linux kernel to a version that includes the fix for this vulnerability (e.g., version 6.6.136-loong64-desktop-hwe+ or later).
- If updating the kernel is not immediately possible, avoid using discrete Loongson GPUs on affected platforms until the fix is applied.
- Monitor system logs for ADE or panic messages related to loongson_gpu_fixup_dma_hang() to detect any exploitation attempts.