CVE-2024-36977

CVE-2024-36977

High · published June 19, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
11.9
In the wild
Unconfirmed
What it is

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

usb: dwc3: Wait unconditionally after issuing EndXfer command

Currently all controller IP/revisions except DWC3_usb3 >= 310a

wait 1ms unconditionally for ENDXFER completion when IOC is not

set. This is because DWC_usb3 controller revisions >= 3.10a

supports GUCTL2[14: Rst_actbitlater] bit which allows polling

CMDACT bit to know whether ENDXFER command is completed.

Consider a case where an IN request was queued, and parallelly

soft_disconnect was called (due to ffs_epfile_release). This

eventually calls stop_active_transfer with IOC cleared, hence

send_gadget_ep_cmd() skips waiting for CMDACT cleared during

EndXfer. For DWC3 controllers with revisions >= 310a, we don't

forcefully wait for 1ms either, and we proceed by unmapping the

requests. If ENDXFER didn't complete by this time, it leads to

SMMU faults since the controller would still be accessing those

requests.

Fix this by ensuring ENDXFER completion by adding 1ms delay in

__dwc3_stop_active_transfer() unconditionally.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00221 · 11.9th percentile
Published
2024-06-19T00:15Z
Affected products (4)
ProductVersionsFixed in
linux/linux_kernel≥ 6.1, < 6.1.926.1.92
linux/linux_kernel≥ 6.2, < 6.6.326.6.32
linux/linux_kernel≥ 6.7, < 6.8.116.8.11
linux/linux_kernel≥ 6.9, < 6.9.26.9.2
References (10)
EPSS history
Timeline
  • 18 JUN 19:27Z
    usb: dwc3: Wait unconditionally after issuing EndXfer command
    cvelistv5