Back

HIGH

bus: mhi: host: Fix race between unprepare and queue_buf

Published May 1, 2025

Description

A client driver may use mhi_unprepare_from_transfer() to quiesce incoming data during the client driver's tear down. The client driver might also be processing data at the same time, resulting in a call to mhi_queue_buf() which will invoke mhi_gen_tre(). If mhi_gen_tre() runs after mhi_unprepare_from_transfer() has torn down the channel, a panic will occur due to an invalid dereference leading to a page fault.

This occurs because mhi_gen_tre() does not verify the channel state after locking it. Fix this by having mhi_gen_tre() confirm the channel state is valid, or return error to avoid accessing deinitialized data.

[mani: added stable tag]

Affected products

Remediation

No remediation recorded yet.

References (14)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner Linux
Published May 1, 2025
Updated Aug 5, 2026
Reserved Jan 11, 2025
NVD
Status Modified
Modified Jul 30, 2026
Red Hat
Severity Low
Public date May 1, 2025
ENISA EUVD
Assigner Linux
Published May 1, 2025
Updated Aug 5, 2026
Exploited since n/a
EUVD-2025-13098