Lucene search

K
ubuntucveUbuntu.comUB:CVE-2024-36977
HistoryJun 18, 2024 - 12:00 a.m.

CVE-2024-36977

2024-06-1800:00:00
ubuntu.com
ubuntu.com
4
linux
kernel
usb
vulnerability
resolved
dwc3 controller
smmu faults
endxfer completion

AI Score

6.6

Confidence

High

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.