CVE-2026-64233 json
usb: gadget: uvc: hold opts->lock across XU walks in uvc_function_bind
published 2026-07-24 3 mo ago modified 2026-11-08 17 h ago also EUVD-2026-48642
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: uvc: hold opts->lock across XU walks in uvc_function_bind
uvc_function_bind() walks &opts->extension_units twice without holding opts->lock:
- directly, for the iExtension string-descriptor fixup loop; - indirectly, four times via uvc_copy_descriptors() (once per speed), where the helper iterates uvc->desc.extension_units (which aliases &opts->extension_units) to size and emit XU descriptors.
The configfs side (uvcg_extension_make / uvcg_extension_drop, in drivers/usb/gadget/function/uvc_configfs.c) takes opts->lock around its list_add_tail / list_del operations. A privileged userspace process that holds the configfs subtree open and writes the gadget UDC name to bind the function while concurrently rmdir()'ing an extensions subdir can race uvcg_extension_drop() against the bind-time list walks and dereference a freed struct uvcg_extension.
Hold opts->lock from the start of the XU string-descriptor fixup through the last uvc_copy_descriptors() call, releasing on the descriptor-error path via a new error_unlock label that drops the lock before falling through to the existing error label. This matches the locking discipline of the configfs callbacks and removes the only remaining unsynchronised reader of the XU list during bind.
Reachability: only privileged processes that can mount configfs and write to gadget UDC files can trigger the race, so this is a correctness fix rather than a security boundary.
Patch / fix
- Linux Linux 6.6.143, 6.12.93, 6.18.35, 7.0.12, 7.1
- linux Debian 13 6.12.94-1
- linux Debian 14 7.0.12-1
debian advisories DEBIAN-CVE-2026-64233
- linux Ubuntu 24.04 LTS 6.8.0-146.146
- linux Ubuntu 26.04 LTS 7.0.0-28.28
- linux-aws Ubuntu 24.04 LTS 6.8.0-1066.69
- linux-aws Ubuntu 26.04 LTS 7.0.0-1009.9
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1070.78
- linux-gcp Ubuntu 26.04 LTS 7.0.0-1008.8
- linux-gke Ubuntu 24.04 LTS 6.8.0-1065.73
- linux-gke Ubuntu 26.04 LTS 7.0.0-1003.4
ubuntu advisories UBUNTU-CVE-2026-64233
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-default SLES 16.0, SLE High Availability Extension 16.0, Linux Micro 6.2 +1 more 6.12.0-160000.37.1
- kernel-rt Linux Micro 6.2 6.12.0-160000.37.1
- kernel-64kb SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.37.1
- kernel-source SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.37.1
- kernel-default-base SLES 16.0, Linux Micro 6.2, SLES for SAP applications 16.0 6.12.0-160000.37.1.160000.2.19
- kernel-syms SLES 16.0, Linux Micro Extras 6.2, SLES for SAP applications 16.0 6.12.0-160000.37.1
- kernel-azure SLES 16.0, SLES for SAP applications 16.0 6.12.0-160000.37.1
- kernel-obs-qa SLES 16.0, SLES for SAP applications 16.0 6.12.0-160000.37.1
suse advisories SUSE-SU-2026:23237-1SUSE-SU-2026:23068-1SUSE-SU-2026:23221-1SUSE-SU-2026:23231-1SUSE-SU-2026:23066-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.37.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.37.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.37.1
opensuse advisories openSUSE-SU-2026:21555-1
- git.kernel.org/stable/c/e15c414092b3c24610cc771e481a723b0f645eca commit
- git.kernel.org/stable/c/2c9e0905ef7e69f7b814cd709613f6b3b5b98805 commit
- git.kernel.org/stable/c/caec0145e5974e85fe5192fc6a6f5aa1a98f82a6 commit
- git.kernel.org/stable/c/5f1b9cff88982e2a2053d8b1fd983f7ccb9f03cc commit
- git.kernel.org/stable/c/68aa70648b625fa684bc0b71bbfd905f4943ca20 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-64233 updated
kernel: usb: gadget: uvc: hold opts->lock across XU walks in uvc_function_bind
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.11% chance of exploitation in the next 30 days, higher than 1% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
-
git.kernel.org
/stable/c/e15c414092b3c24610cc771e481a723b0f645eca
patch
-
git.kernel.org
/stable/c/2c9e0905ef7e69f7b814cd709613f6b3b5b98805
patch
-
git.kernel.org
/stable/c/caec0145e5974e85fe5192fc6a6f5aa1a98f82a6
patch
-
git.kernel.org
/stable/c/5f1b9cff88982e2a2053d8b1fd983f7ccb9f03cc
patch
-
git.kernel.org
/stable/c/68aa70648b625fa684bc0b71bbfd905f4943ca20
patch
Sources
- CVE List CVE-2026-64233
- NVD CVE-2026-64233
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.