In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: core: flush gadget workqueue after device removal
devicedel() 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: devicedel() gadgetunbinddriver() usbgadgetdisconnectlocked() dwc3gadgetpullup() dwc3gadgetsoftdisconnect() usbgadgetsetstate() schedulework(&gadget->work)
Move flushwork() after devicedel() to ensure the workqueue is cleaned up.
[
{
"signature_type": "Line",
"signature_version": "v1",
"id": "CVE-2025-21838-2d6ee195",
"digest": {
"line_hashes": [
"152499051638743591336391107871315501020",
"338852021660823808578155355472173294351",
"49583246709029199917320631503787488325",
"20515577377406884321348574550231700274",
"254487100442181528892057134493121873008"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3bc1a9a67ce33a2e761e6e7b7c2afc6cb9b7266",
"deprecated": false,
"target": {
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"id": "CVE-2025-21838-3dc8af66",
"digest": {
"length": 506.0,
"function_hash": "257191324509318471892759512954285377878"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@97695b5a1b5467a4f91194db12160f56da445dfe",
"deprecated": false,
"target": {
"function": "usb_del_gadget",
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"id": "CVE-2025-21838-400aba6d",
"digest": {
"length": 506.0,
"function_hash": "257191324509318471892759512954285377878"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@399a45e5237ca14037120b1b895bd38a3b4492ea",
"deprecated": false,
"target": {
"function": "usb_del_gadget",
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"id": "CVE-2025-21838-54fda395",
"digest": {
"length": 506.0,
"function_hash": "257191324509318471892759512954285377878"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@859cb45aefa6de823b2fa7f229fe6d9562c9f3b7",
"deprecated": false,
"target": {
"function": "usb_del_gadget",
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Line",
"signature_version": "v1",
"id": "CVE-2025-21838-665a30a4",
"digest": {
"line_hashes": [
"152499051638743591336391107871315501020",
"338852021660823808578155355472173294351",
"49583246709029199917320631503787488325",
"20515577377406884321348574550231700274",
"254487100442181528892057134493121873008"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f894448f3904d7ad66fecef8f01fe0172629e091",
"deprecated": false,
"target": {
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"id": "CVE-2025-21838-a37b6407",
"digest": {
"length": 506.0,
"function_hash": "257191324509318471892759512954285377878"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f894448f3904d7ad66fecef8f01fe0172629e091",
"deprecated": false,
"target": {
"function": "usb_del_gadget",
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Function",
"signature_version": "v1",
"id": "CVE-2025-21838-c50fccd3",
"digest": {
"length": 506.0,
"function_hash": "257191324509318471892759512954285377878"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3bc1a9a67ce33a2e761e6e7b7c2afc6cb9b7266",
"deprecated": false,
"target": {
"function": "usb_del_gadget",
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Line",
"signature_version": "v1",
"id": "CVE-2025-21838-da34e3b9",
"digest": {
"line_hashes": [
"152499051638743591336391107871315501020",
"338852021660823808578155355472173294351",
"49583246709029199917320631503787488325",
"20515577377406884321348574550231700274",
"254487100442181528892057134493121873008"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@399a45e5237ca14037120b1b895bd38a3b4492ea",
"deprecated": false,
"target": {
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Line",
"signature_version": "v1",
"id": "CVE-2025-21838-ee4037b1",
"digest": {
"line_hashes": [
"152499051638743591336391107871315501020",
"338852021660823808578155355472173294351",
"49583246709029199917320631503787488325",
"20515577377406884321348574550231700274",
"254487100442181528892057134493121873008"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@859cb45aefa6de823b2fa7f229fe6d9562c9f3b7",
"deprecated": false,
"target": {
"file": "drivers/usb/gadget/udc/core.c"
}
},
{
"signature_type": "Line",
"signature_version": "v1",
"id": "CVE-2025-21838-f9d4dd17",
"digest": {
"line_hashes": [
"152499051638743591336391107871315501020",
"338852021660823808578155355472173294351",
"49583246709029199917320631503787488325",
"20515577377406884321348574550231700274",
"254487100442181528892057134493121873008"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@97695b5a1b5467a4f91194db12160f56da445dfe",
"deprecated": false,
"target": {
"file": "drivers/usb/gadget/udc/core.c"
}
}
]