PT-2026-116982 · Linux · Linux
CVE-2026-98763
·
Published
2026-10-18
·
Updated
2026-10-18
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
usb: core: clear both ep in and ep out for non-ep0 control endpoints
In usb enable endpoint(), non-zero control endpoints (where
usb endpoint xfer control(&ep->desc) is true) populate both
dev->ep in[epnum] and dev->ep out[epnum] with the same struct
usb host endpoint pointer.
However, usb disable endpoint() only clears either dev->ep out[epnum] or
dev->ep in[epnum] depending on the direction bit of epaddr when
reset hardware is set, leaving the opposite direction's array slot
pointing to the disabled/freed endpoint.
Clear both dev->ep out[epnum] and dev->ep in[epnum] when disabling a
non-ep0 control endpoint with reset hardware set, and update the
function kerneldoc accordingly.
Tested in QEMU against Linux 7.3.0-rc3 using dummy hcd and raw-gadget to
enumerate a USB device with a non-zero control endpoint
(bEndpointAddress 0x01, bmAttributes USB ENDPOINT XFER CONTROL),
verifying that both dev->ep in[1] and dev->ep out[1] are cleared when
the interface is disabled.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux