CVE-2023-53580
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-10-04

Last updated on: 2026-03-23

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: USB: Gadget: core: Help prevent panic during UVC unconfigure Avichal Rakesh reported a kernel panic that occurred when the UVC gadget driver was removed from a gadget's configuration. The panic involves a somewhat complicated interaction between the kernel driver and a userspace component (as described in the Link tag below), but the analysis did make one thing clear: The Gadget core should accomodate gadget drivers calling usb_gadget_deactivate() as part of their unbind procedure. Currently this doesn't work. gadget_unbind_driver() calls driver->unbind() while holding the udc->connect_lock mutex, and usb_gadget_deactivate() attempts to acquire that mutex, which will result in a deadlock. The simple fix is for gadget_unbind_driver() to release the mutex when invoking the ->unbind() callback. There is no particular reason for it to be holding the mutex at that time, and the mutex isn't held while the ->bind() callback is invoked. So we'll drop the mutex before performing the unbind callback and reacquire it afterward. We'll also add a couple of comments to usb_gadget_activate() and usb_gadget_deactivate(). Because they run in process context they must not be called from a gadget driver's ->disconnect() callback, which (according to the kerneldoc for struct usb_gadget_driver in include/linux/usb/gadget.h) may run in interrupt context. This may help prevent similar bugs from arising in the future.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-10-04
Last Modified
2026-03-23
Generated
2026-05-06
AI Q&A
2025-10-04
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 10 associated CPEs
Vendor Product Version / Range
linux linux_kernel 6.5
linux linux_kernel 6.4
linux linux_kernel 6.5
linux linux_kernel 6.5
linux linux_kernel 6.5
linux linux_kernel 6.5
linux linux_kernel 6.4
linux linux_kernel From 6.4.1 (inc) to 6.4.11 (exc)
linux linux_kernel From 6.1.35 (inc) to 6.1.46 (exc)
linux linux_kernel From 6.3.9 (inc) to 6.4 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-667 The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability involves a kernel panic in the Linux kernel's USB gadget driver subsystem. Specifically, when the UVC gadget driver is removed from a gadget's configuration, a deadlock can occur because the gadget_unbind_driver() function holds a mutex (udc->connect_lock) while calling the driver's unbind callback, and the usb_gadget_deactivate() function tries to acquire the same mutex, causing a deadlock and kernel panic. The fix involves releasing the mutex before calling the unbind callback to prevent this deadlock.


How can this vulnerability impact me? :

This vulnerability can cause the Linux kernel to panic (crash) when the UVC gadget driver is unconfigured, leading to system instability or downtime. This can disrupt normal operations on systems using the affected USB gadget drivers, potentially causing loss of service or data until the system is rebooted or the issue is resolved.


What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, update your Linux kernel to a version that includes the fix for the USB Gadget core panic issue during UVC unconfigure. The fix involves changes to the gadget_unbind_driver() function to properly release and reacquire the mutex during unbind callbacks, preventing deadlocks and kernel panics. Applying the latest kernel patches or updates from your Linux distribution that address this issue is recommended.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart