{"api_version":"1","generated_at":"2026-05-13T05:23:08+00:00","cve":"CVE-2025-71285","urls":{"html":"https://cve.report/CVE-2025-71285","api":"https://cve.report/api/cve/CVE-2025-71285.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2025-71285","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2025-71285"},"summary":{"title":"net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: Drop the MHI auto_queue feature for IPCR DL channels\n\nMHI stack offers the 'auto_queue' feature, which allows the MHI stack to\nauto queue the buffers for the RX path (DL channel). Though this feature\nsimplifies the client driver design, it introduces race between the client\ndrivers and the MHI stack. For instance, with auto_queue, the 'dl_callback'\nfor the DL channel may get called before the client driver is fully probed.\nThis means, by the time the dl_callback gets called, the client driver's\nstructures might not be initialized, leading to NULL ptr dereference.\n\nCurrently, the drivers have to workaround this issue by initializing the\ninternal structures before calling mhi_prepare_for_transfer_autoqueue().\nBut even so, there is a chance that the client driver's internal code path\nmay call the MHI queue APIs before mhi_prepare_for_transfer_autoqueue() is\ncalled, leading to similar NULL ptr dereference. This issue has been\nreported on the Qcom X1E80100 CRD machines affecting boot.\n\nSo to properly fix all these races, drop the MHI 'auto_queue' feature\naltogether and let the client driver (QRTR) manage the RX buffers manually.\nIn the QRTR driver, queue the RX buffers based on the ring length during\nprobe and recycle the buffers in 'dl_callback' once they are consumed. This\nalso warrants removing the setting of 'auto_queue' flag from controller\ndrivers.\n\nCurrently, this 'auto_queue' feature is only enabled for IPCR DL channel.\nSo only the QRTR client driver requires the modification.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-05-06 12:16:27","updated_at":"2026-05-12 21:25:04"},"problem_types":["CWE-476"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"5.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}}],"references":[{"url":"https://git.kernel.org/stable/c/51731792a25cb312ca94cdccfa139eb46de1b2ef","name":"https://git.kernel.org/stable/c/51731792a25cb312ca94cdccfa139eb46de1b2ef","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7bdff9b9b0c65ac7105416fe3a40686832515e20","name":"https://git.kernel.org/stable/c/7bdff9b9b0c65ac7105416fe3a40686832515e20","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8c464e00e0754e016816b1860fa9592dcad80eb2","name":"https://git.kernel.org/stable/c/8c464e00e0754e016816b1860fa9592dcad80eb2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-71285","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-71285","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 7bdff9b9b0c65ac7105416fe3a40686832515e20 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 8c464e00e0754e016816b1860fa9592dcad80eb2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 227fee5fc99eeb74d43bf68832f6d59d30ac07d8 51731792a25cb312ca94cdccfa139eb46de1b2ef git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c682fb70a7dfc25b848a4ff3a385b0471b470606 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.17","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.17 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.17 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19.6 6.19.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2025","cve_id":"71285","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"linux","cpe5":"linux_kernel","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/accel/qaic/mhi_controller.c","drivers/bus/mhi/host/pci_generic.c","drivers/net/wireless/ath/ath11k/mhi.c","drivers/net/wireless/ath/ath12k/mhi.c","net/qrtr/mhi.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"7bdff9b9b0c65ac7105416fe3a40686832515e20","status":"affected","version":"227fee5fc99eeb74d43bf68832f6d59d30ac07d8","versionType":"git"},{"lessThan":"8c464e00e0754e016816b1860fa9592dcad80eb2","status":"affected","version":"227fee5fc99eeb74d43bf68832f6d59d30ac07d8","versionType":"git"},{"lessThan":"51731792a25cb312ca94cdccfa139eb46de1b2ef","status":"affected","version":"227fee5fc99eeb74d43bf68832f6d59d30ac07d8","versionType":"git"},{"status":"affected","version":"c682fb70a7dfc25b848a4ff3a385b0471b470606","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/accel/qaic/mhi_controller.c","drivers/bus/mhi/host/pci_generic.c","drivers/net/wireless/ath/ath11k/mhi.c","drivers/net/wireless/ath/ath12k/mhi.c","net/qrtr/mhi.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.17"},{"lessThan":"5.17","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.17","versionType":"semver"},{"lessThanOrEqual":"6.19.*","status":"unaffected","version":"6.19.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.0","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.17","versionStartIncluding":"5.17","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.19.6","versionStartIncluding":"5.17","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0","versionStartIncluding":"5.17","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.63","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: Drop the MHI auto_queue feature for IPCR DL channels\n\nMHI stack offers the 'auto_queue' feature, which allows the MHI stack to\nauto queue the buffers for the RX path (DL channel). Though this feature\nsimplifies the client driver design, it introduces race between the client\ndrivers and the MHI stack. For instance, with auto_queue, the 'dl_callback'\nfor the DL channel may get called before the client driver is fully probed.\nThis means, by the time the dl_callback gets called, the client driver's\nstructures might not be initialized, leading to NULL ptr dereference.\n\nCurrently, the drivers have to workaround this issue by initializing the\ninternal structures before calling mhi_prepare_for_transfer_autoqueue().\nBut even so, there is a chance that the client driver's internal code path\nmay call the MHI queue APIs before mhi_prepare_for_transfer_autoqueue() is\ncalled, leading to similar NULL ptr dereference. This issue has been\nreported on the Qcom X1E80100 CRD machines affecting boot.\n\nSo to properly fix all these races, drop the MHI 'auto_queue' feature\naltogether and let the client driver (QRTR) manage the RX buffers manually.\nIn the QRTR driver, queue the RX buffers based on the ring length during\nprobe and recycle the buffers in 'dl_callback' once they are consumed. This\nalso warrants removing the setting of 'auto_queue' flag from controller\ndrivers.\n\nCurrently, this 'auto_queue' feature is only enabled for IPCR DL channel.\nSo only the QRTR client driver requires the modification."}],"providerMetadata":{"dateUpdated":"2026-05-11T21:57:14.720Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/7bdff9b9b0c65ac7105416fe3a40686832515e20"},{"url":"https://git.kernel.org/stable/c/8c464e00e0754e016816b1860fa9592dcad80eb2"},{"url":"https://git.kernel.org/stable/c/51731792a25cb312ca94cdccfa139eb46de1b2ef"}],"title":"net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2025-71285","datePublished":"2026-05-06T11:32:18.774Z","dateReserved":"2026-05-06T11:31:45.509Z","dateUpdated":"2026-05-11T21:57:14.720Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-05-06 12:16:27","lastModifiedDate":"2026-05-12 21:25:04","problem_types":["CWE-476"],"metrics":{"cvssMetricV31":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":3.6}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.63","versionEndExcluding":"5.16","matchCriteriaId":"60ACBB16-9DB7-4B68-AF39-342F3BA4775E"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.17","versionEndExcluding":"6.18.17","matchCriteriaId":"9E1D818B-7FC7-4E36-AC6B-517B11C9D765"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.19","versionEndExcluding":"6.19.6","matchCriteriaId":"373EEEDA-FAA1-4FB4-B6ED-DB4DD99DBE67"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2025","CveId":"71285","Ordinal":"1","Title":"net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels","CVE":"CVE-2025-71285","Year":"2025"},"notes":[{"CveYear":"2025","CveId":"71285","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: Drop the MHI auto_queue feature for IPCR DL channels\n\nMHI stack offers the 'auto_queue' feature, which allows the MHI stack to\nauto queue the buffers for the RX path (DL channel). Though this feature\nsimplifies the client driver design, it introduces race between the client\ndrivers and the MHI stack. For instance, with auto_queue, the 'dl_callback'\nfor the DL channel may get called before the client driver is fully probed.\nThis means, by the time the dl_callback gets called, the client driver's\nstructures might not be initialized, leading to NULL ptr dereference.\n\nCurrently, the drivers have to workaround this issue by initializing the\ninternal structures before calling mhi_prepare_for_transfer_autoqueue().\nBut even so, there is a chance that the client driver's internal code path\nmay call the MHI queue APIs before mhi_prepare_for_transfer_autoqueue() is\ncalled, leading to similar NULL ptr dereference. This issue has been\nreported on the Qcom X1E80100 CRD machines affecting boot.\n\nSo to properly fix all these races, drop the MHI 'auto_queue' feature\naltogether and let the client driver (QRTR) manage the RX buffers manually.\nIn the QRTR driver, queue the RX buffers based on the ring length during\nprobe and recycle the buffers in 'dl_callback' once they are consumed. This\nalso warrants removing the setting of 'auto_queue' flag from controller\ndrivers.\n\nCurrently, this 'auto_queue' feature is only enabled for IPCR DL channel.\nSo only the QRTR client driver requires the modification.","Type":"Description","Title":"net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels"}]}}}