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.
Published: 2026-10-18
Score: 6.2 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Use‑after‑free leading to memory corruption and potential privilege escalation
Action: Patch Kernel
AI Analysis

Impact

The Linux kernel’s usb_disable_endpoint() function improperly clears only one of the dev->ep_in[epnum] or dev->ep_out[epnum] entries for non‑zero control endpoints based on the endpoint direction. This leaves the opposite entry pointing to a freed usb_host_endpoint structure, which can lead to a use‑after‑free condition. An attacker who can supply a malicious USB device with a non‑zero control endpoint can trigger this dangling pointer and potentially perform arbitrary writes in kernel space, leading to memory corruption and privilege escalation. This is a form of improper error handling (CWE‑825).

Affected Systems

Any Linux kernel release that contains the original usb_disable_endpoint implementation without the fix is vulnerable. The issue was demonstrated against kernel 7.3.0‑rc3, so all kernels prior to the inclusion of the patch that clears both dev->ep_in[epnum] and dev->ep_out[epnum] for non‑ep0 control endpoints remain affected. Distributions shipping kernels older than the fix, or those that have not backported the change, are at risk.

Risk and Exploitability

The CVSS score of 6.2 indicates moderate severity, and the EPSS score of <1% suggests a low probability of exploitation. The vulnerability is not listed in CISA’s KEV catalog. Because the flaw is triggered during USB device enumeration, the attack remains local and requires access to a USB device that forces enumeration of a non‑zero control endpoint. Successful exploitation could lead to kernel memory corruption, denial of service, or privilege escalation, but would require a crafted device and local interaction.

Generated by OpenCVE AI on October 23, 2026 at 21:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the running kernel to a version that includes the fix for usb_disable_endpoint, such as Linux 7.3.0 or newer stable releases.
  • If a kernel upgrade is not immediately available, download and apply the specific patch from the kernel repository that clears both dev->ep_in[epnum] and dev->ep_out[epnum] in usb_disable_endpoint, ensuring it matches the current kernel version.
  • Configure the system to restrict USB device enumeration to trusted users only, for example by adding udev rules that limit access to USB device nodes to privileged groups or by disabling raw USB gadget interfaces for untrusted contexts.

Generated by OpenCVE AI on October 23, 2026 at 21:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
History

Fri, 30 Oct 2026 13:00:00 +0000


Fri, 23 Oct 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 6.2, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Wed, 21 Oct 2026 13:15:00 +0000


Sun, 18 Oct 2026 20:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
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.
Title usb: core: clear both ep_in and ep_out for non-ep0 control endpoints
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:39:32.238Z

Reserved: 2026-09-25T10:25:14.368Z

Link: CVE-2026-98763

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:30.113

Modified: 2026-10-30T13:21:25.763

Link: CVE-2026-98763

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98763 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T21:30:04Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference