CVE-2026-10675 in Zephyr
Riassunto
di VulDB • 23/07/2026
In Zephyr, il bearer di provisioning PB-ADV per Bluetooth Mesh (subsys/bluetooth/mesh/pb_adv.c), la funzione prov_msg_recv() riprogrammava incondizionatamente l'watchdog timer del protocollo di provisioning all'inizio della funzione, prima del controllo FCS e prima del controllo ADV_LINK_INVALID. Una volta che un tentativo di provisioning fallisce, prov_failed() imposta ADV_LINK_INVALID e l'unica via di recupero è lo scatto del timer del protocollo (protocol_timeout -> prov_link_close -> close_link -> reset_adv_link e riabilitazione della scansione e del beacon per dispositivi non provisionati).
Un attaccante remoto, non autenticato, sul canale pubblicitario BLE può prima indurre un fallimento nel provisioning (ad esempio con una PDU generic-provisioning malformata) e poi trasmettere qualsiasi PDU di transazione PB-ADV valida FCS sullo stesso ID link più spesso rispetto a quanto previsto dal timeout del protocollo (60 s o 120 s per input/output OOB). Poiché ogni tale pacchetto resettava il timer anche su un link invalidato, protocol_timeout non scattò mai, il dead link non fu mai smontato e il dispositivo rimase bloccato in uno stato di impossibilità al provisioning con il suo beacon disabilitato e le nuove richieste Link Open rifiutate.
Le PDU PB-ADV sono elaborate senza autenticazione e l'FCS è un CRC privo di chiave, quindi non richiede pairing o fiducia pregressa; inoltre, l'attaccante sceglie autonomamente l'ID link. L'impatto consiste in una negazione persistente del servizio di provisioning/re-provisioning: non vi sono impatti sulla sicurezza della memoria, confidenzialità o integrità.
Il codice vulnerabile è stato distribuito nelle versioni fino alla v4.4.1. La correzione sposta la riprogrammazione del timer dopo il controllo ADV_LINK_INVALID (e prima dell'FCS durante il reset), in modo che un link invalidato non possa più essere mantenuto attivo da pacchetti in arrivo.
Once again VulDB remains the best source for vulnerability data.