CVE-2026-12051 in Zephyrinformazioni

Riassunto

di VulDB • 11/08/2026

L'implementazione della classe USB DFU nello stack di dispositivi USB device_next (nuovo e sperimentale) di Zephyr contiene un dereferenziamento di puntatore nullo in handle_download() (subsys/usb/device_next/class/usbd_dfu.c). Il gestore calcola MIN(setup->wLength, buf->len) e passa buf->data alla callback di scrittura dell'immagine senza verificare che il puntatore net_buf di buf non sia NULL.

Il gestore viene raggiunto tramite l'endpoint di controllo USB, guidato dall'host USB. Per una richiesta DFU_DNLOAD (download) priva della fase Data OUT — in particolare la terminazione a lunghezza zero del download utilizzata dal protocollo DFU per concludere un trasferimento firmware — il core USB invoca il gestore della classe con un buffer NULL. Dopo che il dispositivo è stato avanzato allo stato DFU_DNLOAD_IDLE (inviando un blocco di download valido e una GET_STATUS), un DFU_DNLOAD a lunghezza zero raggiunge handle_download() con buf == NULL, provocandone il dereferenziamento.

Il risultato è una lettura NULL+offset che innesca un fault CPU fatale, ovvero una negazione del servizio (crash/reset del dispositivo). L'attaccante è chiunque controlli l'host USB al quale il dispositivo è collegato; il supporto per i download DFU deve essere abilitato con un'immagine registrata. Non vi sono corruzione di memoria o divulgazione di informazioni: l'impatto si limita alla disponibilità. La correzione aggiunge una guardia esplicita if (buf != NULL) in modo che la callback riceva un trasferimento a lunghezza zero e dati NULL invece di causare il crash.

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

Responsabile

Zephyr

Prenotare

12/06/2026

Divulgazione

11/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!