CVE-2025-22023: usb: xhci: Don't skip on Stopped - Length Invalid
In the Linux kernel, the following vulnerability has been resolved:
usb: xhci: Don't skip on Stopped - Length Invalid
Up until commit d56b0b2ab142 ("usb: xhci: ensure skipped isoc TDs are
returned when isoc ring is stopped") in v6.11, the driver didn't skip
missed isochronous TDs when handling Stoppend and Stopped - Length
Invalid events. Instead, it erroneously cleared the skip flag, which
would cause the ring to get stuck, as future events won't match the
missed TD which is never removed from the queue until it's cancelled.
This buggy logic seems to have been in place substantially unchanged
since the 3.x series over 10 years ago, which probably speaks first
and foremost about relative rarity of this case in normal usage, but
by the spec I see no reason why it shouldn't be possible.
After d56b0b2ab142, TDs are immediately skipped when handling those
Stopped events. This poses a potential problem in case of Stopped -
Length Invalid, which occurs either on completed TDs (likely already
given back) or Link and No-Op TRBs. Such event won't be recognized
as matching any TD (unless it's the rare Link TRB inside a TD) and
will result in skipping all pending TDs, giving them back possibly
before they are done, risking isoc data loss and maybe UAF by HW.
As a compromise, don't skip and don't clear the skip flag on this
kind of event. Then the next event will skip missed TDs. A downside
of not handling Stopped - Length Invalid on a Link inside a TD is
that if the TD is cancelled, its actual length will not be updated
to account for TRBs (silently) completed before the TD was stopped.
I had no luck producing this sequence of completion events so there
is no compelling demonstration of any resulting disaster. It may be
a very rare, obscure condition. The sole motivation for this patch
is that if such unlikely event does occur, I'd rather risk reporting
a cancelled partially done isoc frame as empty than gamble with UAF.
This will be fixed more properly by looking at Stopped event's TRB
pointer when making skipping decisions, but such rework is unlikely
to be backported to v6.12, which will stay around for a few years.
Security readout for executives and security teams
Plain-English summary
CVE-2025-22023 is a Linux kernel USB xHCI driver flaw in a rare isochronous transfer error path. The source describes possible isochronous data loss and a potential hardware-related use-after-free risk, but also says the triggering sequence was not reproduced. Severity is not scored in the provided sources.
Executive priority
Treat this as a normal kernel maintenance item unless your environment depends heavily on USB xHCI isochronous devices. There is no provided evidence of exploitation or a demonstrated attack path, but kernel updates should still be planned through standard patch cycles.
Technical view
After Linux commit d56b0b2ab142 in v6.11, handling of Stopped - Length Invalid events can skip pending isochronous transfer descriptors that do not match a TD. This may return TDs before completion. The fix avoids both skipping and clearing the skip flag for that event type.
Likely exposure
Exposure is limited to Linux systems using affected kernel versions with USB xHCI isochronous transfer handling. The source ties the issue to v6.11-era behavior and stable kernel fixes, but does not identify specific distributions, devices, or configurations.
Exploitation context
The source bundle does not report active exploitation, and KEV is false. The kernel description calls the condition rare and says the author could not produce the completion-event sequence, leaving practical exploitability unproven from the provided evidence.
Researcher notes
The evidence supports a correctness and safety fix in xHCI event handling, not a proven exploit. The upstream text explicitly notes no compelling demonstration and frames the change as avoiding a possible UAF risk in an unlikely event sequence.
Mitigation direction
Update to a vendor kernel containing the listed stable fixes.
Track Linux distribution advisories for backported kernel packages.
Prioritize systems that expose USB xHCI functionality or rely on USB isochronous devices.
Do not assume exploitability without vendor or upstream confirmation.
Validation and detection
Inventory Linux kernel versions on managed endpoints and servers.
Check whether kernels include one of the referenced stable commits.
Confirm distribution advisories map CVE-2025-22023 to installed kernel packages.
Review USB-dependent systems for xHCI and isochronous device usage.
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-2025-22023 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.
0CVSS vectors
3Timeline events
0ADP providers
5Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Apr 16, 2025, 10:23 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.