usb: gadget: core: flush gadget workqueue after device removal
device_del() can lead to new work being scheduled in gadget->work
workqueue. This is observed, for example, with the dwc3 driver with the
following call stack:
device_del()
gadget_unbind_driver()
usb_gadget_disconnect_locked()
dwc3_gadget_pullup()
dwc3_gadget_soft_disconnect()
usb_gadget_set_state()
schedule_work(&gadget->work)
Move flush_work() after device_del() to ensure the workqueue is cleaned
up.
Metrics
Affected Vendors & Products
| Source | ID | Title | 
|---|---|---|
|  Debian DLA | DLA-4193-1 | linux-6.1 security update | 
|  Debian DSA | DSA-5900-1 | linux security update | 
|  EUVD | EUVD-2025-7589 | In the Linux kernel, the following vulnerability has been resolved: usb: gadget: core: flush gadget workqueue after device removal device_del() can lead to new work being scheduled in gadget->work workqueue. This is observed, for example, with the dwc3 driver with the following call stack: device_del() gadget_unbind_driver() usb_gadget_disconnect_locked() dwc3_gadget_pullup() dwc3_gadget_soft_disconnect() usb_gadget_set_state() schedule_work(&gadget->work) Move flush_work() after device_del() to ensure the workqueue is cleaned up. | 
|  Ubuntu USN | USN-7521-1 | Linux kernel vulnerabilities | 
|  Ubuntu USN | USN-7521-2 | Linux kernel (AWS) vulnerabilities | 
|  Ubuntu USN | USN-7521-3 | Linux kernel vulnerabilities | 
|  Ubuntu USN | USN-7703-1 | Linux kernel vulnerabilities | 
|  Ubuntu USN | USN-7703-2 | Linux kernel vulnerabilities | 
|  Ubuntu USN | USN-7703-3 | Linux kernel (Oracle) vulnerabilities | 
|  Ubuntu USN | USN-7703-4 | Linux kernel vulnerabilities | 
|  Ubuntu USN | USN-7719-1 | Linux kernel (Raspberry Pi Real-time) vulnerabilities | 
|  Ubuntu USN | USN-7737-1 | Linux kernel (Azure) vulnerabilities | 
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Wed, 29 Oct 2025 21:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| First Time appeared | Linux Linux linux Kernel | |
| Weaknesses | NVD-CWE-noinfo | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:* | |
| Vendors & Products | Linux Linux linux Kernel | |
| Metrics | cvssV3_1 
 | cvssV3_1 
 | 
Thu, 27 Mar 2025 15:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Weaknesses | CWE-416 | |
| Metrics | cvssV3_1 
 
 | cvssV3_1 
 
 | 
Sat, 08 Mar 2025 14:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References |  | |
| Metrics | threat_severity 
 | cvssV3_1 
 
 | 
Fri, 07 Mar 2025 18:15:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References |  | 
Fri, 07 Mar 2025 09:15:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: usb: gadget: core: flush gadget workqueue after device removal device_del() can lead to new work being scheduled in gadget->work workqueue. This is observed, for example, with the dwc3 driver with the following call stack: device_del() gadget_unbind_driver() usb_gadget_disconnect_locked() dwc3_gadget_pullup() dwc3_gadget_soft_disconnect() usb_gadget_set_state() schedule_work(&gadget->work) Move flush_work() after device_del() to ensure the workqueue is cleaned up. | |
| Title | usb: gadget: core: flush gadget workqueue after device removal | |
| References |  | 
 MITRE
                        MITRE
                    Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-05-04T07:22:17.406Z
Reserved: 2024-12-29T08:45:45.777Z
Link: CVE-2025-21838
 Vulnrichment
                        Vulnrichment
                    No data.
 NVD
                        NVD
                    Status : Analyzed
Published: 2025-03-07T09:15:16.810
Modified: 2025-10-29T20:51:39.617
Link: CVE-2025-21838
 Redhat
                        Redhat
                     OpenCVE Enrichment
                        OpenCVE Enrichment
                    No data.