CVE-2026-90030
massImproper DMA cleanup in Linux kernel DWC3 USB driver enables SMMU faults/crashes
The Linux kernel's DWC3 USB controller driver issued EndTransfer commands with the forceRM bit set, as older Synopsys programming guides recommended; on DWC_usb31 v2.00a and v2.10a controllers this leaves an aborted transfer active after the EndTransfer command completes. A local attacker who can trigger an endpoint dequeue (the ep_dequeue path) followed by a new StartTransfer on the same endpoint can cause the controller to DMA into a buffer that has already been unmapped, producing an SMMU (IOMMU) fault. The practical result is a kernel crash/denial of service, and the 7.8 High CVSS score (C:H/I:H/A:H) reflects potential memory-safety impact from stale DMA writes. Any Linux system whose silicon uses Synopsys DWC_usb31 v2.00a or v2.10a with the DWC3 driver is affected, which includes many ARM SoCs in Android phones, development boards, and embedded/gadget-mode devices. No public proof-of-concept is known, the issue is not in CISA's KEV, and no in-the-wild exploitation has been reported.
What to do: Update Linux systems using DWC3 to a kernel that includes the fix commit ('usb: dwc3: clear forceRM when issuing EndTransfer'); no fixed release number is provided in the data, so pull the latest stable or vendor kernel. Operators of ARM/embedded, OTG, or USB-gadget systems should verify whether their SoC integrates Synopsys DWC_usb31 v2.00a or v2.10a (check SoC documentation or controller revision registers) and limit local untrusted user access, since exploitation requires local code execution. No workarounds, public PoCs, or in-the-wild exploitation are currently known.
| Linux kernel DWC3 USB driver (drivers/usb/dwc3) | kernels that issue EndTransfer with forceRM=1; resolved by the 'usb: dwc3: clear forceRM when issuing EndTransfer' commit (no specific release range given in th |
| Synopsys DesignWare DWC_usb31 USB controller IP (as integrated in ARM/embedded SoCs) | v2.00a, v2.10a (revisions on which the fault manifests) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In the Linux kernel, the following vulnerability has been resolved: usb: dwc3: clear forceRM when issuing EndTransfer The forceRM bit of the DEPCMD register controls the behavior of the EndTransfer command used to stop an active transfer. Older DWC3 programming guide revisions recommended setting forceRM=1 when issuing EndTransfer. Newer programming guide revisions recommend issuing EndTransfer with forceRM cleared. With forceRM=1 on DWC_usb31 v2.00a and v2.10a controllers, a transfer aborted through the ep_dequeue path was observed to remain active after EndTransfer completion. A subsequent StartTransfer issued on the same endpoint triggered writes associated with the aborted transfer. This resulted in an SMMU fault because the transfer buffer had already been unmapped during EndTransfer command-completion cleanup. Using forceRM=0 eliminates the issue. Although older DWC3 programming guide revisions recommended setting forceRM=1, no issues are known from using forceRM=0. Clear forceRM when issuing EndTransfer to provide consistent EndTransfer behavior and align with newer programming guide recommendations.
- Vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.