CVE-2025-71285

net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels

State
Published
Severity
Not scored
Published
May 6, 2026
Updated
Oct 30, 2026
Reserved
May 6, 2026

Read the record on cve.org

Description

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

net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels

MHI stack offers the 'auto_queue' feature, which allows the MHI stack to auto queue the buffers for the RX path (DL channel). Though this feature simplifies the client driver design, it introduces race between the client drivers and the MHI stack. For instance, with auto_queue, the 'dl_callback' for the DL channel may get called before the client driver is fully probed. This means, by the time the dl_callback gets called, the client driver's structures might not be initialized, leading to NULL ptr dereference.

Currently, the drivers have to workaround this issue by initializing the internal structures before calling mhi_prepare_for_transfer_autoqueue(). But even so, there is a chance that the client driver's internal code path may call the MHI queue APIs before mhi_prepare_for_transfer_autoqueue() is called, leading to similar NULL ptr dereference. This issue has been reported on the Qcom X1E80100 CRD machines affecting boot.

So to properly fix all these races, drop the MHI 'auto_queue' feature altogether and let the client driver (QRTR) manage the RX buffers manually. In the QRTR driver, queue the RX buffers based on the ring length during probe and recycle the buffers in 'dl_callback' once they are consumed. This also warrants removing the setting of 'auto_queue' flag from controller drivers.

Currently, this 'auto_queue' feature is only enabled for IPCR DL channel. So only the QRTR client driver requires the modification.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before b7874c74bcc224fd586679e51b9ded65f66edc2aAffected
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before ab0bdaf7a7f4f83b947193563f2a483ab87f72dbAffected
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before 8e130ff078892fa5a6bf272ced7565af58d98a85Affected
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before 7bdff9b9b0c65ac7105416fe3a40686832515e20Affected
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before 8c464e00e0754e016816b1860fa9592dcad80eb2Affected
  • 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 to before 51731792a25cb312ca94cdccfa139eb46de1b2efAffected
  • c682fb70a7dfc25b848a4ff3a385b0471b470606Affected
  • 5.15.63 to before 5.16Affected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.17 through 6.18.*Not affected
  • 6.19.6 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.