CVE-2025-68282 json
usb: gadget: udc: fix use-after-free in usb_gadget_state_work
published 2025-12-16 10 mo ago modified 2026-10-13 26 d ago also EUVD-2025-203798
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 10%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: udc: fix use-after-free in usb_gadget_state_work
A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:
BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0 Workqueue: events usb_gadget_state_work
The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().
Commit 399a45e5237c ("usb: gadget: core: flush gadget workqueue after device removal") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.
This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.
Patch / fix
- Linux Linux 5.10.248, 5.15.198, 6.1.159, 6.6.119, 6.12.61, 6.17.11, 6.18
- linux Debian 12 6.1.159-1
- linux Debian 13 6.12.63-1
- linux Debian 14 6.17.11-1
debian advisories DEBIAN-CVE-2025-68282
- linux Ubuntu 22.04 LTS 5.15.0-173.183
- linux Ubuntu 24.04 LTS 6.8.0-106.106
- linux Ubuntu 25.10 6.17.0-19.19
- linux-aws Ubuntu 22.04 LTS 5.15.0-1103.110
- linux-aws Ubuntu 24.04 LTS 6.8.0-1050.53
- linux-aws Ubuntu 25.10 6.17.0-1009.9
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1103.112
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1052.55
ubuntu advisories UBUNTU-CVE-2025-68282
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
- git.kernel.org/stable/c/dddc944d65169b552e09cb54e3ed4fbb9ea26416 commit
- git.kernel.org/stable/c/eee16f3ff08e759ea828bdf7dc1c0ef2f22134f5 commit
- git.kernel.org/stable/c/c12a0c3ef815ddd67e47f9c819f9fe822fed5467 commit
- git.kernel.org/stable/c/f02a412c0a18f02f0f91b0a3d9788315a721b7fd commit
- git.kernel.org/stable/c/10014310193cf6736c1aeb4105c5f4a0818d0c65 commit
- git.kernel.org/stable/c/3b32caa73d135eea8fb9cabb45e9fc64c5a3ecb9 commit
- git.kernel.org/stable/c/baeb66fbd4201d1c4325074e78b1f557dff89b5b 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-2025-68282 updated cvss 6.3
kernel: Linux kernel: Use-after-free in USB gadget driver due to race condition during teardown
-
Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelaffected: no fix available “Fix deferred”
-
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 morenot 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.21% chance of exploitation in the next 30 days, higher than 10% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/dddc944d65169b552e09cb54e3ed4fbb9ea26416
- git.kernel.org /stable/c/eee16f3ff08e759ea828bdf7dc1c0ef2f22134f5
- git.kernel.org /stable/c/c12a0c3ef815ddd67e47f9c819f9fe822fed5467
- git.kernel.org /stable/c/f02a412c0a18f02f0f91b0a3d9788315a721b7fd
- git.kernel.org /stable/c/10014310193cf6736c1aeb4105c5f4a0818d0c65
- git.kernel.org /stable/c/3b32caa73d135eea8fb9cabb45e9fc64c5a3ecb9
- git.kernel.org /stable/c/baeb66fbd4201d1c4325074e78b1f557dff89b5b
Sources
- CVE List CVE-2025-68282
- NVD CVE-2025-68282
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.