CVE-2026-15460 in Zephyr
Riassunto
di VulDB • 10/09/2026
Il gestore di ricezione L2CAP per Bluetooth Classic (BR/EDR), bt_l2cap_br_recv(), presente in subsys/bluetooth/host/classic/l2cap_br.c, instrada i PDU dei dati in entrata basandosi esclusivamente sull'ID del canale di destinazione, senza verificare che il canale target abbia raggiunto lo stato BT_L2CAP_CONNECTED. Un canale dinamico viene assegnato con il suo RX CID e aggiunto all'elenco dei canali della connessione mentre si trova ancora nello stato BT_L2CAP_CONNECTING (e successivamente in BT_L2CAP_CONFIG), prima del completamento della configurazione e, per i PSM che richiedono sicurezza, prima dell'autenticazione del peer (l2cap_br_conn_req()).
Poiché il canale è già individuabile tramite bt_l2cap_br_lookup_rx_cid() durante questa finestra temporale, un peer remoto entro il raggio d'azione radio può inviare un PDU dei dati indirizzato a tale CID e farlo elaborare su un canale non ancora stabilito. L'instradamento si basa sui campi del canale (BR_CHAN(chan)->rx.mode, rx.mps) che vengono inizializzati solo durante la configurazione da l2cap_br_conf(); poiché gli oggetti dei canali sono in pool e bt_l2cap_br_chan_del() non reimposta rx.mode né il buffer di riassemblaggio _sdu, un canale riutilizzato può trasportare uno stato obsoleto nella finestra CONNECTING e instradare il frame nel percorso di ritrasmissione/controllo del flusso (bt_l2cap_br_ret_fc_recv()) con parametri obsoleti e un puntatore _sdu potenzialmente obsoleto.
L'impatto consiste nella consegna dei dati dell'attaccante ai gestori dei protocolli di livello superiore su un canale semi-aperto (e possibilmente non autenticato), oltre all'esecuzione su uno stato del canale obsoleto o parzialmente inizializzato su oggetti di canali riutilizzati, con conseguente chiusura della connessione/link (denial of service) e, nel caso dello _sdu obsoleto, una condizione di dangling pointer. La correzione aggiunge un controllo esplicito BR_CHAN(chan)->state < BT_L2CAP_CONNECTED che scarta qualsiasi dato ricevuto prima che il canale sia completamente connesso.
If you want to get best quality of vulnerability data, you may have to visit VulDB.