Back to CVE records
Medium 5.5Published May 1, 2026

CVE-2026-31754usb: cdns3: gadget: fix state inconsistency on gadget init failure

Updated under an hour ago ()

Does this affect you?

It affects Linux and 1 other product. Add what you run to find out whether that includes you.

No exploitation reported and no EPSS estimate yet.

In the Linux kernel, the following vulnerability has been resolved: usb: cdns3: gadget: fix state inconsistency on gadget init failure When cdns3_gadget_start() fails, the DRD hardware is left in gadget mode while software state remains INACTIVE, creating hardware/software state inconsistency. When switching to host mode via sysfs: echo host > /sys/class/usb_role/13180000.usb-role-switch/role The role state is not set to CDNS_ROLE_STATE_ACTIVE due to the error, so cdns_role_stop() skips cleanup because state is still INACTIVE. This violates the DRD controller design specification (Figure22), which requires returning to idle state before switching roles. This leads to a synchronous external abort in xhci_gen_setup() when setting up the host controller: [ 516.440698] configfs-gadget 13180000.usb: failed to start g1: -19 [ 516.442035] cdns-usb3 13180000.usb: Failed to add gadget [ 516.443278] cdns-usb3 13180000.usb: set role 2 has failed ... [ 1301.375722] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 1301.377716] Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP [ 1301.382485] pc : xhci_gen_setup+0xa4/0x408 [ 1301.393391] backtrace: ... xhci_gen_setup+0xa4/0x408 <-- CRASH xhci_plat_setup+0x44/0x58 usb_add_hcd+0x284/0x678 ... cdns_role_set+0x9c/0xbc <-- Role switch Fix by calling cdns_drd_gadget_off() in the error path to properly clean up the DRD gadget state.

CVSS
5.5 MEDIUM (v3.1, NVD)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness (CWE)
Not given
Known exploited
Not in CISA's KEV catalog
EPSS (exploitation in the next 30 days)
Not loaded for this CVE
Assigned by
Linux
NVD analysis
Analyzed
Record last updated
May 11, 2026
First seen by InfoSec Signals
Oct 9, 2026

Affected products

Affected products
Linux Linux
linux:linux (from the name)
from 7733f6c32e36ff9d7adadf40001039bf219b1cbe before fb7110a052467098967284ef14d306810b354937; 7733f6c32e36ff9d7adadf40001039bf219b1cbe builds before 9b1d301fbae837bf6979a19030b81d869bb15f7a; from 7733f6c32e36ff9d7adadf40001039bf219b1cbe before cfca84f5986afceb63a3adf39d4a98e915aebbc2; from 7733f6c32e36ff9d7adadf40001039bf219b1cbe before c7e475ae3a5593c5db21b3b7dca4ba8bdac9b47f; 7733f6c32e36ff9d7adadf40001039bf219b1cbe builds before 5a85599ca4d2584d89dc69f4fc49303b75a42338; from 7733f6c32e36ff9d7adadf40001039bf219b1cbe before b490f0e477d26d29ed51e5dc47e3b9bd31bcb49f; from 7733f6c32e36ff9d7adadf40001039bf219b1cbe before c32f8748d70c8fc77676ad92ed76cede17bf2c48
CNA record
linux linux_kernel
linux:linux_kernel
from 5.4 before 5.15.203; from 5.16 before 6.1.168; from 6.2 before 6.6.134; from 6.7 before 6.12.81; from 6.13 before 6.18.22; from 6.19 before 6.19.12; 7.0; 7.0; and 4 more ranges
NVD

References

References

The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.

Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.