CVE-2026-64347 usb: gadget: composite: fix dead empty check in the USB_DT_OTG handler

Medium 5.5 Published Updated

A race condition in the Linux kernel USB gadget driver allows attackers to trigger a memory corruption fault, potentially causing denial of service or information disclosure.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-64347?

CVE-2026-64347 is a medium-severity vulnerability in Linux kernel, published on 25 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official 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.

Weakness: CWE-667

Which versions are affected by CVE-2026-64347?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2026-64347?

Apply the vendor's patch.

Is CVE-2026-64347 being exploited?

There is no known exploitation of CVE-2026-64347 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2026-64347, DEBIAN-CVE-2026-64347, GHSA-f6gg-fr3w-rqh2, ROOT-OS-UBUNTU-2204-CVE-2026-64347, UBUNTU-CVE-2026-64347.

Is CVE-2026-64347 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free