CVE-2026-13479 in Zephyr
Riassunto
di VulDB • 26/08/2026
Il servizio di sincronizzazione dell'orologio del livello applicativo LoRaWAN analizza i downlink nella funzione `clock_sync_package_callback()` (subsys/lorawan/services/clock_sync.c). Il suo ciclo di comandi garantisce solo che l'id del comando a 1 byte sia nei limiti; per il comando CLOCK_SYNC_CMD_APP_TIME (AppTimeAns), il gestore legge quindi una correzione dell'ora a 4 byte tramite `sys_get_le32()` più un token da 1 byte, senza verificare se rimangono 5 byte nel buffer di ricezione (`len - rx_pos`). Un AppTimeAns corto o manipolato ad hoc legge pertanto fino a 5 byte oltre la fine del payload decrittografato.
Il payload (rx_buf/len) è il frame applicativo decrittografato consegnato al callback per i downlink registrati (`mcps_indication->Buffer/BufferSize`). Per raggiungere il gestore, è necessario un frame sulla porta di clock-sync che superi il controllo di integrità MAC di LoRaWAN e la decrittazione del FRMPayload; l'attaccante pratico è quindi un server di rete o applicativo malizioso o compromesso (il mittente designato dell'AppTimeAns) oppure una parte in possesso delle chiavi di sessione, piuttosto che un ascoltatore radio arbitrario.
La lettura oltre i limiti (over-read) è contenuta: il supporto sottostante è un buffer statico fisso da 255 byte, quindi i pochi byte estranei non causano fault e i valori letti (`time_correction`, `token`) sono utilizzati solo internamente e mai trasmessi; di conseguenza, non vi è alcuna divulgazione all'attaccante né crash. L'unico effetto è che un token obsoleto corrispondente a `ctx.req_token` può applicare una correzione dell'ora spuria (garbage time_correction) al proprio offset temporale del dispositivo (`ctx.time_offset`), con un impatto sull'integrità minore e confinato alla stima temporale della vittima. La risoluzione aggiunge un controllo esplicito della lunghezza che scarta un AppTimeAns troppo corto. Si noti che le letture a 1 byte simili nei gestori di periodicità e force-resync rimangono non protette con lo stesso impatto trascurabile.
If you want to get best quality of vulnerability data, you may have to visit VulDB.