{"id":"CVE-2026-98763","title":"usb: core: clear both ep_in and ep_out for non-ep0 control endpoints","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: core: clear both ep_in and ep_out for non-ep0 control endpoints\n\nIn usb_enable_endpoint(), non-zero control endpoints (where\nusb_endpoint_xfer_control(&ep->desc) i…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7a9f61476b0e8002092a52ee8295edeeb0a28d1e","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c50413ecb662ea43c7f487632c8114721743a277","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0e8baa78d872f2db440d8b9ded946ab8dceb89eb","Linux 2.6.12"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:47:54.526Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98763","references":[{"url":"https://git.kernel.org/stable/c/7a9f61476b0e8002092a52ee8295edeeb0a28d1e"},{"url":"https://git.kernel.org/stable/c/1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1"},{"url":"https://git.kernel.org/stable/c/c50413ecb662ea43c7f487632c8114721743a277"},{"url":"https://git.kernel.org/stable/c/0e8baa78d872f2db440d8b9ded946ab8dceb89eb"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.495Z","slug":"CVE-2026-98763","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nusb: core: clear both ep_in and ep_out for non-ep0 control endpoints\n\nIn usb_enable_endpoint(), non-zero control endpoints (where\nusb_endpoint_xfer_control(&ep->desc) is true) populate both\ndev->ep_in[epnum] and dev->ep_out[epnum] with the same struct\nusb_host_endpoint pointer.\n\nHowever, usb_disable_endpoint() only clears either dev->ep_out[epnum] or\ndev->ep_in[epnum] depending on the direction bit of epaddr when\nreset_hardware is set, leaving the opposite direction's array slot\npointing to the disabled/freed endpoint.\n\nClear both dev->ep_out[epnum] and dev->ep_in[epnum] when disabling a\nnon-ep0 control endpoint with reset_hardware set, and update the\nfunction kerneldoc accordingly.\n\nTested in QEMU against Linux 7.3.0-rc3 using dummy_hcd and raw-gadget to\nenumerate a USB device with a non-zero control endpoint\n(bEndpointAddress 0x01, bmAttributes USB_ENDPOINT_XFER_CONTROL),\nverifying that both dev->ep_in[1] and dev->ep_out[1] are cleared when\nthe interface is disabled.\n\n## Affected\n\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7a9f61476b0e8002092a52ee8295edeeb0a28d1e`\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1`\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c50413ecb662ea43c7f487632c8114721743a277`\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0e8baa78d872f2db440d8b9ded946ab8dceb89eb`\n- `Linux 2.6.12`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}