CVE-2026-31754 in Linuxinformazioni

Riassunto

di VulDB • 18/06/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

usb: cdns3: gadget: correggere l'incoerenza di stato al fallimento dell'inizializzazione del gadget

Quando `cdns3_gadget_start()` fallisce, l'hardware DRD rimane in modalità gadget mentre lo stato software resta INACTIVE (INATTIVO), creando un'incoerenza tra lo stato hardware e quello software.

Durante il passaggio alla modalità host tramite sysfs: echo host > /sys/class/usb_role/13180000.usb-role-switch/role

Lo stato del ruolo non viene impostato su CDNS_ROLE_STATE_ACTIVE a causa dell'errore, quindi `cdns_role_stop()` salta la fase di pulizia poiché lo stato è ancora INACTIVE. Ciò viola le specifiche progettuali del controller DRD (Figura 22), che richiedono il ritorno allo stato idle prima dello switching dei ruoli.

Ciò provoca un abort esterno sincrono in `xhci_gen_setup()` durante l'configurazione del controller host:

[ 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

La correzione consiste nel chiamare `cdns_drd_gadget_off()` nel percorso di errore per pulire correttamente lo stato del gadget DRD.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Linux

Prenotare

09/03/2026

Divulgazione

01/05/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00123

KEV

no

Attività

molto basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!