CVE-2025-68282

Source
https://cve.org/CVERecord?id=CVE-2025-68282
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68282.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-68282
Downstream
Related
Published
2025-12-16T15:06:04.332Z
Modified
2026-03-09T23:56:04.133972Z
Summary
usb: gadget: udc: fix use-after-free in usb_gadget_state_work
Details

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

usb: gadget: udc: fix use-after-free in usbgadgetstate_work

A race condition during gadget teardown can lead to a use-after-free in usbgadgetstate_work(), as reported by KASAN:

BUG: KASAN: invalid-access in sysfsnotify+0x2c/0xd0 Workqueue: events usbgadgetstatework

The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usbgadgetsetstate() and schedule gadget->work at any time during the cleanup process in usbdel_gadget().

Commit 399a45e5237c ("usb: gadget: core: flush gadget workqueue after device removal") attempted to fix this by moving flushwork() to after devicedel(). 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 'statelock' spinlock to the usbgadget struct. The flag is set during cleanup in usbdelgadget() before calling flushwork() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usbgadgetsetstate(), now checks this flag under the lock before queueing the work, thus safely closing the race window.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/68xxx/CVE-2025-68282.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15
Fixed
dddc944d65169b552e09cb54e3ed4fbb9ea26416
Fixed
eee16f3ff08e759ea828bdf7dc1c0ef2f22134f5
Fixed
c12a0c3ef815ddd67e47f9c819f9fe822fed5467
Fixed
f02a412c0a18f02f0f91b0a3d9788315a721b7fd
Fixed
10014310193cf6736c1aeb4105c5f4a0818d0c65
Fixed
3b32caa73d135eea8fb9cabb45e9fc64c5a3ecb9
Fixed
baeb66fbd4201d1c4325074e78b1f557dff89b5b

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68282.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.12.0
Fixed
5.10.248
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.198
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.159
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.119
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.61
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.17.11

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68282.json"