CVE-2024-36977: usb: dwc3: Wait unconditionally after issuing EndXfer command

Published Jun 18, 2024
·
Updated

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

usb: dwc3: Wait unconditionally after issuing EndXfer command

Currently all controller IP/revisions except DWC3usb3 >= 310a wait 1ms unconditionally for ENDXFER completion when IOC is not set. This is because DWCusb3 controller revisions >= 3.10a supports GUCTL2[14: Rstactbitlater] bit which allows polling CMDACT bit to know whether ENDXFER command is completed.

Consider a case where an IN request was queued, and parallelly softdisconnect was called (due to ffsepfilerelease). This eventually calls stopactivetransfer with IOC cleared, hence sendgadgetepcmd() 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 dwc3stopactivetransfer() unconditionally.

Other sources

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

usb: dwc3: Wait unconditionally after issuing EndXfer command

The Linux kernel CVE team has assigned CVE-2024-36977 to this issue.

Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024061804-CVE-2024-36977-e1e8@gregkh/T

Red Hat

Affected Software

10 affected componentsFixes available
debian/linux
5.10.223-15.10.234-16.1.129-16.1.135-16.12.22-16.12.25-1
redhat/kernel<6.1.92
6.1.92
redhat/kernel<6.6.32
6.6.32
redhat/kernel<6.8.11
6.8.11
redhat/kernel<6.9.2
6.9.2
redhat/kernel<6.10
6.10
Linux Linux kernel>=6.1<6.1.92
Linux Linux kernel>=6.2<6.6.32
Linux Linux kernel>=6.7<6.8.11
Linux Linux kernel>=6.9<6.9.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 5.10.223-1Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.22-1Fixed in 6.12.25-1
  2. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.1.92
  3. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.6.32
  4. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.8.11
  5. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.9.2
  6. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.10
  7. Configuration

    Modify __dwc3_stop_active_transfer() to wait unconditionally 1ms for ENDXFER completion (when IOC is cleared/not set) to prevent SMMU faults from unmapping requests before the controller finishes accessing them. This resolves CVE-2024-36977.

    Linux kernel usb: dwc3 __dwc3_stop_active_transfer() EndXfer completion wait = Add unconditionally a 1ms delay after issuing ENDXFER command when IOC is not set

Event History

Jun 18, 2024
CVE Published
via MITRE·07:27 PM
Data Sourced
via MITRE·07:27 PM
DescriptionSeverity
Data Sourced
via NVD·08:15 PM
DescriptionSeverity
Data Sourced
via NVD·08:15 PM
RemedyAffected Software
Data Sourced
via Red Hat·10:22 PM
DescriptionSeverityAffected Software
Aug 8, 2024
Data Sourced
via Launchpad·11:27 PM
Description
Dec 2, 2024
Data Sourced
via Ubuntu·11:54 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-36977?

CVE-2024-36977 has a moderate severity rating due to its potential impact on USB controller operations.

2

Which versions of the kernel are affected by CVE-2024-36977?

Affected kernel versions include various releases up to 6.10 for Red Hat and several specific versions for Debian.

3

How do I fix CVE-2024-36977?

To address CVE-2024-36977, update your kernel to one of the patched versions such as 6.1.92 or 6.6.32.

4

What systems are vulnerable to CVE-2024-36977?

Systems running the specified vulnerable kernel versions are susceptible to CVE-2024-36977.

5

Is there a workaround for CVE-2024-36977?

Currently, the recommended mitigation for CVE-2024-36977 is to apply the relevant kernel update as no specific workarounds have been documented.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203