CVE-2026-64347

MediumCVSS 5.5/10Last modified Nov 6, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

usb: gadget: composite: fix dead empty check in the USB_DT_OTG handler

The OTG branch of composite_setup() falls back to the first configuration when none is selected:

if (cdev->config) config = cdev->config; else config = list_first_entry(&cdev->configs, struct usb_configuration, list); if (!config) goto done; ... memcpy(req->buf, config->descriptors[0], value);

list_first_entry() never returns NULL. On an empty list it returns container_of() of the list head. So the "if (!config)" check is dead.

When cdev->configs is empty, config points at the head inside struct usb_composite_dev. config->descriptors[0] reads whatever sits at that offset. The memcpy copies up to w_length bytes of it into the response buffer.

cdev->configs can be empty in two cases. One is a teardown race on gadget unbind with a control transfer in flight. The other is a driver that sets is_otg before it adds a config. A reproducer that holds cdev->configs empty triggers a KASAN fault in this branch.

Use list_first_entry_or_null() so the existing check does its job.

Metrics

CVSS 3.1 5.5/10CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Weakness enumeration

Affected software

VendorProductVersions
LinuxLinux>= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < 2454264b2ab4cf0055c0bfd39e79f830452bd0db; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < d3e72cfef2e38bd588055739a8100d14f9773b17; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < 8ac463fe6c0f85bdb1ce8c30e8c9e060802e4483; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < 56add2b9b2e89ec61c0761165d758f73004fdfdf; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < 91b3ecd34b60f950c50c560974945b6596a6f207; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < 01feaf024f29618d5ffa7ab0fd858e0579dcbf7b; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < fcb21bf747640c9d6bd1eda9da85420f076d59c1; >= 53e6242db8d60da0587d36951cc9434d1a1c21dd, < f8f680609c2b3ab795ffcd6f21585b6dfc46d395
LinuxLinux4.3

References

Timeline

Published
Jul 25, 2026
Last modified
Nov 6, 2026
NVD status
Analyzed

Related CVEs from 2026

CVE-2026-643487.8In the Linux kernel, the following vulnerability has been resolved: usb: free iso schedules on failed submit EHCI and FOTG210 isochronous CVE-2026-643495.5In the Linux kernel, the following vulnerability has been resolved: usb: dwc3: fix dwc3_readl() and dwc3_writel() calls in dwc3_ulpi_setup(CVE-2026-643505.5In the Linux kernel, the following vulnerability has been resolved: usb: cdnsp: fix stream context array leak in cdnsp_alloc_stream_info() CVE-2026-643515.5In the Linux kernel, the following vulnerability has been resolved: net: usb: kalmia: bound RX frame length in kalmia_rx_fixup() kalmia_rxCVE-2026-643527.8In the Linux kernel, the following vulnerability has been resolved: bpf: Allow LPM map access from sleepable BPF programs trie_lookup_elemCVE-2026-643535.5In the Linux kernel, the following vulnerability has been resolved: bpf: Keep dynamic inner array lookups nullable An ARRAY_OF_MAPS can usCVE-2026-643547.8In the Linux kernel, the following vulnerability has been resolved: bpf: Validate BTF repeated field counts before expansion btf_parse_strCVE-2026-643559.8In the Linux kernel, the following vulnerability has been resolved: bpf: Reject fragmented frames in devmap Devmap broadcast redirects cloCVE-2026-643565.5In the Linux kernel, the following vulnerability has been resolved: xfs: fix memory leak in xfs_dqinode_metadir_create() If xfs_metadir_crCVE-2026-643575.5In the Linux kernel, the following vulnerability has been resolved: xfs: fix exchmaps reservation limit check xfs_exchmaps_estimate_overheCVE-2026-643585.5In the Linux kernel, the following vulnerability has been resolved: media: mtk-jpeg: cancel workqueue on release for supported platforms onCVE-2026-643595.5In the Linux kernel, the following vulnerability has been resolved: nilfs2: reject CLEAN_SEGMENTS ioctl with out-of-range segment numbers
CVE-2026-64347: Medium severity, CVSS 5.5 | Vulnix