---
id: CVE-2025-21838
title: |-
  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
summary: |-
  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 examp…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 3.12, < 6.1.130'
  - 'linux_kernel >= 6.2, < 6.6.80'
  - 'linux_kernel >= 6.7, < 6.12.16'
  - 'linux_kernel >= 6.13, < 6.13.4'
  - linux_kernel = 6.14
patched:
  - linux_kernel 6.13.4
published: '2025-03-07'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:17:37.803'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21838'
references:
  - url: 'https://git.kernel.org/stable/c/399a45e5237ca14037120b1b895bd38a3b4492ea'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/859cb45aefa6de823b2fa7f229fe6d9562c9f3b7'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/97695b5a1b5467a4f91194db12160f56da445dfe'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e3bc1a9a67ce33a2e761e6e7b7c2afc6cb9b7266'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f894448f3904d7ad66fecef8f01fe0172629e091'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-784472.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00208
epssPercentile: 0.1083
ingestedAt: '2026-10-15T03:30:12.805Z'
---

## Overview

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.

## Affected

- `linux_kernel >= 3.12, < 6.1.130`
- `linux_kernel >= 6.2, < 6.6.80`
- `linux_kernel >= 6.7, < 6.12.16`
- `linux_kernel >= 6.13, < 6.13.4`
- `linux_kernel = 6.14`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.13.4`
