๐Ÿ” CVE Alert

CVE-2025-68282

UNKNOWN 0.0

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

CVSS Score
0.0
EPSS Score
0.0%
EPSS Percentile
0th

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.

Vendor linux
Product linux
Ecosystems
Industries
Technology
Published Dec 16, 2025
Last Updated May 11, 2026
Stay Ahead of the Next One

Get instant alerts for linux linux

Be the first to know when new unknown vulnerabilities affecting linux linux are published โ€” delivered to Slack, Telegram or Discord.

Get Free Alerts โ†’ Free ยท No credit card ยท 60 sec setup

Affected Versions

Linux / Linux
5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < dddc944d65169b552e09cb54e3ed4fbb9ea26416 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < eee16f3ff08e759ea828bdf7dc1c0ef2f22134f5 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < c12a0c3ef815ddd67e47f9c819f9fe822fed5467 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < f02a412c0a18f02f0f91b0a3d9788315a721b7fd 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < 10014310193cf6736c1aeb4105c5f4a0818d0c65 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < 3b32caa73d135eea8fb9cabb45e9fc64c5a3ecb9 5702f75375aa9ecf8ad3431aef3fe6ce8c8dbd15 < baeb66fbd4201d1c4325074e78b1f557dff89b5b
Linux / Linux
3.12

References

NVD โ†— CVE.org โ†— EPSS Data โ†—
git.kernel.org: https://git.kernel.org/stable/c/dddc944d65169b552e09cb54e3ed4fbb9ea26416 git.kernel.org: https://git.kernel.org/stable/c/eee16f3ff08e759ea828bdf7dc1c0ef2f22134f5 git.kernel.org: https://git.kernel.org/stable/c/c12a0c3ef815ddd67e47f9c819f9fe822fed5467 git.kernel.org: https://git.kernel.org/stable/c/f02a412c0a18f02f0f91b0a3d9788315a721b7fd git.kernel.org: https://git.kernel.org/stable/c/10014310193cf6736c1aeb4105c5f4a0818d0c65 git.kernel.org: https://git.kernel.org/stable/c/3b32caa73d135eea8fb9cabb45e9fc64c5a3ecb9 git.kernel.org: https://git.kernel.org/stable/c/baeb66fbd4201d1c4325074e78b1f557dff89b5b