CVE-2026-98763

usb: core: clear both ep_in and ep_out for non-ep0 control endpoints

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 59d2c9d70fa42e2290ff68e6430d38a1c817fcb7Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before a7928ad4bbb330dfb0f726166384f319d66eb5d1Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before b521fe45e06b3f7042e6d1f9566ddb6f179dcb1dAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 198d74dcfa129523125f46a89479d3b446b17dbeAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 7a9f61476b0e8002092a52ee8295edeeb0a28d1eAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before c50413ecb662ea43c7f487632c8114721743a277Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 0e8baa78d872f2db440d8b9ded946ab8dceb89ebAffected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.113 through 6.12.*Not affected
  • 6.18.56 through 6.18.*Not affected
  • 7.2.10 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.