CVE-2026-16148 in Zephyrinformazioni

Riassunto

di VulDB • 14/09/2026

Il driver del controller USB ITE it82xx2 inizializzava il lavoro di rilevamento della sospensione del bus con `k_work_init_delayable(&priv->suspended_work, suspended_handler)` all'interno di `it82xx2_enable()` (l'operazione `.enable` del driver) in `drivers/usb/udc/udc_it82xx2.c`. Questo elemento di lavoro viene pianificato essenzialmente in modo continuo mentre il bus USB è attivo: l'handler delle interruzioni lo ripianifica ad ogni frame SOF e `suspended_handler()` si ripianifica da sé, quindi il suo nodo timeout è normalmente collegato alla lista dei timeout del kernel o a una coda di lavoro pendente.

`k_work_init_delayable()` (kernel/work.c) sovrascrive incondizionamente l'intera struttura `k_work_delayable`, inclusi i suoi link per il timeout e la coda, senza alcun controllo di occupazione (busy check). Poiché `it82xx2_disable()` non annulla il lavoro, un ciclo normale di disabilitazione-riabilitazione ri-esegue `api->enable()` (`udc_enable()` rifiuta solo una ridondanza dell'abilitazione, non una riabilitazione dopo la disabilitazione) e reinizializza il lavoro ancora pendente in loco, corrompendo le liste collegate dei timeout del kernel/delle code di lavoro e causando un panic del kernel.

Un host USB esterno — ad esempio un host che esegue il detach DFU USB (`dfu-util --detach`) o forza ripetuti attach/reset/rienumerazione — guida le transizioni `udc_disable()`/`udc_enable()` e controlla la temporizzazione di suspend/resume, quindi può predisporre affinché il lavoro di sospensione sia pendente durante una riabilitazione. Ciò provoca un denial of service (DoS) non autenticato (panic del kernel) raggiungibile attraverso il confine USB da un host rimovibile fisicamente connesso, senza impatti dimostrati su riservatezza o integrità.

La correzione sposta la chiamata `k_work_init_delayable()` nella funzione di pre-inizializzazione una tantum in modo che il lavoro venga inizializzato esattamente una volta, eliminando la reinizializzazione di un elemento in uso.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Zephyr

Prenotare

17/07/2026

Divulgazione

14/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!