CVE-2025-71285
Race Condition in Linux Kernel MHI Auto-Queue Feature
Publication date: 2026-05-06
Last updated on: 2026-05-06
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| qualcomm | qrtr | * |
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's MHI stack, specifically related to the 'auto_queue' feature for IPCR DL channels. The 'auto_queue' feature allows the MHI stack to automatically queue buffers for the RX path, simplifying client driver design. However, it introduces a race condition between the client drivers and the MHI stack. For example, the 'dl_callback' for the DL channel may be called before the client driver is fully initialized, potentially causing a NULL pointer dereference because the client driver's structures might not be ready.
To fix this, the 'auto_queue' feature was removed, requiring the client driver (QRTR) to manage RX buffers manually. This change prevents the race condition by having the QRTR driver queue RX buffers during probe and recycle them in 'dl_callback' after consumption.
How can this vulnerability impact me? :
The vulnerability can lead to a NULL pointer dereference in the Linux kernel, which may cause system instability or crashes, particularly on affected Qualcomm hardware (Qcom X1E80100 CRD machines). This could impact device availability or reliability during boot or operation.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, the MHI 'auto_queue' feature should be dropped for IPCR DL channels, allowing the QRTR client driver to manage RX buffers manually.
- Remove the setting of the 'auto_queue' flag from controller drivers.
- Modify the QRTR driver to queue RX buffers based on the ring length during probe.
- Recycle the RX buffers in the 'dl_callback' once they are consumed.