CVE-2021-46969: bus: mhi: core: Fix invalid error returning in mhi_queue
In the Linux kernel, the following vulnerability has been resolved:
bus: mhi: core: Fix invalid error returning in mhi_queue
mhi_queue returns an error when the doorbell is not accessible in
the current state. This can happen when the device is in non M0
state, like M3, and needs to be waken-up prior ringing the DB. This
case is managed earlier by triggering an asynchronous M3 exit via
controller resume/suspend callbacks, that in turn will cause M0
transition and DB update.
So, since it's not an error but just delaying of doorbell update, there
is no reason to return an error.
This also fixes a use after free error for skb case, indeed a caller
queuing skb will try to free the skb if the queueing fails, but in
that case queueing has been done.
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel MHI bus bug where queueing can report failure even after work was queued. Some callers may then free a network buffer that the kernel still uses, creating a use-after-free condition. The provided sources do not include a CVSS score, confirmed exploitation, or detailed business impact.
Executive priority
Handle through normal kernel patch management unless the environment relies on MHI-connected hardware at scale. Escalate priority for mobile, embedded, modem, or edge systems where affected kernels are deployed and patch status is unclear.
Technical view
The issue is in mhi_queue error handling when the MHI doorbell is inaccessible outside M0 state, such as M3. The fix treats delayed doorbell update as non-error because resume callbacks handle M3 exit. Returning an error after queueing could make skb callers free an already-queued buffer, causing use-after-free.
Likely exposure
Exposure appears limited to Linux systems running affected kernel versions or downstream builds with the vulnerable MHI core behavior, especially systems using MHI-connected hardware. The source bundle indicates Linux 5.12-era affected versions, but branch-specific backports must be verified with each vendor kernel.
Exploitation context
The supplied sources do not show active exploitation, and the source bundle marks KEV as false. No exploit prerequisites, attacker position, or public weaponization details are provided. Treat this as a kernel memory-safety issue with incomplete severity evidence.
Researcher notes
Evidence is thin: no CVSS, CWE, exploit report, or detailed affected-platform matrix is provided. The main confirmed behavior is invalid error propagation in mhi_queue leading to skb use-after-free. Validation should focus on kernel branch ancestry and vendor backport confirmation.
Mitigation direction
Apply Linux vendor kernel updates containing the referenced MHI core fixes.
Check distribution advisories for backported fixes in maintained kernel branches.
Prioritize systems using MHI-connected devices or modem hardware.
Avoid assuming fixed status from upstream version numbers alone.
Monitor kernel vendor guidance for severity and operational notes.
Validation and detection
Inventory kernel versions and vendor patch levels across Linux assets.
Identify systems with MHI bus support or MHI-connected hardware in use.
Confirm whether referenced stable commits or vendor backports are present.
Review crash logs for MHI or skb-related kernel instability.
Track whether distributions classify this CVE in their advisories.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2021-46969 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.