CVE-2026-23009: xhci: sideband: don't dereference freed ring when removing sideband endpoint
In the Linux kernel, the following vulnerability has been resolved:
xhci: sideband: don't dereference freed ring when removing sideband endpoint
xhci_sideband_remove_endpoint() incorrecly assumes that the endpoint is
running and has a valid transfer ring.
Lianqin reported a crash during suspend/wake-up stress testing, and
found the cause to be dereferencing a non-existing transfer ring
'ep->ring' during xhci_sideband_remove_endpoint().
The endpoint and its ring may be in unknown state if this function
is called after xHCI was reinitialized in resume (lost power), or if
device is being re-enumerated, disconnected or endpoint already dropped.
Fix this by both removing unnecessary ring access, and by checking
ep->ring exists before dereferencing it. Also make sure endpoint is
running before attempting to stop it.
Remove the xhci_initialize_ring_info() call during sideband endpoint
removal as is it only initializes ring structure enqueue, dequeue and
cycle state values to their starting values without changing actual
hardware enqueue, dequeue and cycle state. Leaving them out of sync
is worse than leaving it as it is. The endpoint will get freed in after
this in most usecases.
If the (audio) class driver want's to reuse the endpoint after offload
then it is up to the class driver to ensure endpoint is properly set up.
Security readout for executives and security teams
Plain-English summary
CVE-2026-23009 is a Linux kernel bug in xHCI sideband endpoint removal. Under certain device, suspend/resume, or endpoint cleanup states, the kernel could dereference a missing transfer ring and crash. The public record describes a stability issue, not confirmed data theft or remote compromise.
Executive priority
Treat this as a stability-focused kernel update. Prioritize fleets using newer affected kernels, laptops, embedded systems, or workloads where suspend/resume reliability matters. There is no provided evidence of active exploitation.
Technical view
The bug is in xhci_sideband_remove_endpoint(), which assumed an endpoint was running and ep->ring existed. After resume reinitialization, re-enumeration, disconnect, or endpoint removal, that ring may be absent. The fix removes unnecessary ring access, checks ep->ring before dereferencing, and stops endpoints only when running.
Likely exposure
Exposure appears limited to Linux systems running affected kernel versions or affected commit ranges with xHCI sideband endpoint paths, such as audio offload, especially around suspend/resume, disconnect, or device re-enumeration workflows.
Exploitation context
No KEV listing is provided, and the source bundle does not cite active exploitation. The known evidence is a crash found during suspend/wake-up stress testing. Exploitability beyond denial-of-service or stability impact is not established in the provided sources.
Researcher notes
The public data lacks CVSS, CWE, and detailed exploitability analysis. The strongest evidence is the upstream stable fix and crash report. Avoid assuming remote reachability, privilege escalation, or broad hardware exposure without additional vendor or kernel maintainer analysis.
Mitigation direction
Apply a vendor kernel update containing the referenced stable fixes.
Check distribution advisories for affected kernel package versions.
Prioritize systems using affected xHCI sideband or audio offload paths.
If no update exists, follow vendor guidance rather than applying unsupported changes.
Validation and detection
Inventory Linux kernel versions against the CVE affected version data.
Confirm the kernel includes one of the referenced stable commits or downstream backports.
Review system logs for crashes involving xhci_sideband_remove_endpoint or ep->ring.
Test suspend/resume and relevant USB or audio offload workflows after patching.
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-2026-23009 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
3Source 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.
Jan 25, 2026, 14:36 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.