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
xhcisidebandremoveendpoint() 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 xhcisidebandremoveendpoint().
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 xhciinitializeringinfo() 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.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-23009?
CVE-2026-23009 has been classified as a high severity vulnerability in the Linux kernel.
How do I fix CVE-2026-23009?
To fix CVE-2026-23009, update your Linux kernel to the latest version where this vulnerability has been patched.
What are the potential impacts of CVE-2026-23009?
The potential impacts of CVE-2026-23009 include system crashes or unpredictable behavior when removing sideband endpoints.
Which versions of the Linux kernel are affected by CVE-2026-23009?
CVE-2026-23009 affects certain versions of the Linux kernel prior to the patch release that addresses this vulnerability.
How was CVE-2026-23009 discovered?
CVE-2026-23009 was discovered during the review of the xHCI (eXtensible Host Controller Interface) sideband handling code in the Linux kernel.