CVE-2026-89739

usb: dwc3: gadget: Fix use-after-free in dwc3_gadget_free_endpoints due to race condition

State
Published
Severity
Not scored
Published
Sep 11, 2026
Updated
Oct 21, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

usb: dwc3: gadget: Fix use-after-free in dwc3_gadget_free_endpoints due to race condition

In dwc3_gadget_init_endpoint, &dep->nostream_work is bound with dwc3_nostream_work, and dwc3_gadget_endpoint_stream_event can queue this delayed work on system_percpu_wq when a DEPEVT_STREAM_NOSTREAM event is received.

If we remove the gadget, dwc3_gadget_free_endpoints makes cleanup and the memory allocated for dep with kzalloc() is released by kfree(dep), while the delayed work mentioned above may still be pending or running. The sequence of operations that may lead to a UAF bug is as follows:

CPU0 CPU1

| dwc3_thread_interrupt | dwc3_endpoint_interrupt | dwc3_gadget_endpoint_stream_event | queue_delayed_work(system_percpu_wq, | &dep->nostream_work) dwc3_gadget_free_endpoints | dwc3_free_trb_pool(dep) | list_del(&dep->endpoint.ep_list) | dwc3_debugfs_remove_endpoint_dir(dep) | kfree(dep) | // dep is freed | | dwc3_nostream_work | // use dep (use-after-free)

Fix it by canceling the delayed work before kfree(dep) in dwc3_gadget_free_endpoints.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • f41ffcd656615754741f190afca00ca3c4bde9f1 to before 5f359265f616873edf32db418bd1513fdae3ddecAffected
  • dcfe437492e27d54f3ac491aed024da760f5c43c to before 448e95c0f3eaa8d99f16ccae92ab94545f14413bAffected
  • dcfe437492e27d54f3ac491aed024da760f5c43c to before 93e08b13a7a30e4e78556d993720e0bc36231ec7Affected
  • dcfe437492e27d54f3ac491aed024da760f5c43c to before 9c855832790cd488d87de1885974f4c37cfe7358Affected
  • 5212f8f452b87318e735ca304728f6f8fb55ff7bAffected
  • 6.6.160 to before 6.7Affected
LinuxLinux
  • 6.14Affected
  • before 6.14Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.