CVE-2026-64346: usb: gadget: udc: Fix use-after-free in gadget_match_driver
High 7.8 EPSS 0.2% Linux kernel
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: udc: Fix use-after-free in gadget_match_driver The udc structure acts as the management structure for the gadget, but their lifecycles are decoupled. A race condition exists where usb_del_gadget() frees the udc memory (e.g., via mode-switch work) while gadget_match_driver() concurrently accesses the freed udc memory (e.g., via configfs), causing a Use-After-Free (UAF) that triggers a NULL pointer dereference when the freed memory is zeroed: [39430.908615][ T1171] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [39430.911397][ T1171] pc : __pi_strcmp+0x20/0x140 [39430.911441][ T1171] lr : gadget_match_driver+0x34/0x60 ... [39430.911890][ T1171] usb_gadget_register_driver_owner+0x50/0xf8 [39430.911910][ T1171] gadget_dev_desc_UDC_store+0xf4/0x140 [39430.931308][ T1171] configfs_write_iter+0xec/0x134 [39430.957058][ T1171] Workqueue: events_freezable __dwc3_set_mode [39430.957287][ T1171] dwc3_gadget_exit+0x34/0x8c [39430.957304][ T1171] __dwc3_set_mode+0xc0/0x664 Fix this by ensuring the udc structure remains allocated until the gadget is released. To achieve this, introduce a new usb_gadget_release() routine to the core. When the gadget is added, usb_add_gadget() stores the gadget's release routine in the udc structure and takes a reference to the udc. When the gadget is released, usb_gadget_release() drops the reference to the udc and then calls the gadget's release routine.
- CVE-2026-64346CVE identifier
- 7.8CVSS 3.1 base score (high)
- 0.2%EPSS: chance of exploitation in the next 30 days (higher than 6% of CVEs)
- 2026-07-25published
What do these terms mean? CVE · CVSS score · exploited (KEV) · EPSS · backported fix · all terms
What to do now
- Check whether you run Linux kernel and which version (commands below).
- Install the fixed version for your system: see “Patch it” below.
- Reboot into the new kernel (uname -r to confirm); live patching (kpatch, Ubuntu Livepatch, SUSE kGraft/klp) can defer the reboot for some CVEs
Affected and fixed versions
Affected:
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before 50eeb8e8a4f389efc91b93cff14a683e714ec194
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before 7a5214dae906d9f58e07bc4995e8181ee74439f4
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before d026f71df141c9b064ff32a78af5391a31ef75c2
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before b52476a83d9e12df00765359d728a875b128bef1
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before 54fa390aae393eb130f307a85562e3001cc39a52
- Linux Linux fc274c1e997314bf47f6a62c79b5d7e554ed59c4 to before 67e511d2989eb1c8c588b599ce2fcc6bb8e6f7ea
- Linux Linux 5.19
Patch it
Use the commands for your system. Distribution packages often keep an older version number with the fix backported, so compare with the fixed package versions in the table below, not only with the upstream version.
Debian
sudo apt update
sudo apt install --only-upgrade linux-image-amd64Ubuntu
sudo apt update
sudo apt install --only-upgrade linux-image-generic (or the installed flavour: linux-image-aws, -azure, -gcp, -virtual)RHEL, AlmaLinux, Rocky, Oracle
sudo dnf upgrade --refresh kernelFedora
sudo dnf upgrade --refresh kernelSUSE / openSUSE
sudo zypper refresh
sudo zypper update kernel-defaultAmazon Linux
sudo dnf upgrade --releasever=latest kernel kernel6.12Arch Linux
sudo pacman -SyuAlpine
apk update && apk upgrade linux-lts linux-virtFreeBSD
not LinuxGeneral update steps for every system are on the Linux and Unix & BSD pages; after updating, see which services to restart.
Fix status in Linux distributions
| Release | Package | Status | Fixed version / advisory |
|---|---|---|---|
| Debian 12 | linux | fixed | 6.1.180-1 |
| Debian 13 | linux | fixed | 6.12.96-1 |
| Debian testing | linux | fixed | 7.1.4-1 |
| Debian 12 | linux-6.12 | fixed | 6.12.100-1~deb12u1 |
| Red Hat Enterprise Linux 9 | kernel | fix deferred | |
| Red Hat Enterprise Linux 9 | kernel-rt | fix deferred | |
| Red Hat Enterprise Linux 10 | kernel | fix deferred | |
From the Debian security tracker, Ubuntu CVE tracker and Red Hat Security Data API, refreshed every few hours.
Sources
- https://git.kernel.org/stable/c/50eeb8e8a4f389efc91b93cff14a683e714ec194
- https://git.kernel.org/stable/c/7a5214dae906d9f58e07bc4995e8181ee74439f4
- https://git.kernel.org/stable/c/d026f71df141c9b064ff32a78af5391a31ef75c2
- https://git.kernel.org/stable/c/b52476a83d9e12df00765359d728a875b128bef1
- https://git.kernel.org/stable/c/54fa390aae393eb130f307a85562e3001cc39a52
- https://git.kernel.org/stable/c/67e511d2989eb1c8c588b599ce2fcc6bb8e6f7ea
- CVE-2026-64346 on CVE.org
- CVE-2026-64346 on NVD
Page generated automatically from official sources on 2026-11-03 18:05 UTC. Always confirm with your vendor's advisory.