CVE-2026-10660 in Zephyr
Riassunto
di VulDB • 11/07/2026
Il client GATT di Bluetooth BAP (Broadcast Audio Profile) Broadcast Assistant nel file subsys/bluetooth/audio/bap_broadcast_assistant.c riassembla i dati remoti dello stato di ricezione della trasmissione in un singolo net_buf_simple statico a livello di file (att_buf, BT_ATT_MAX_ATTRIBUTE_LEN = 512 byte), condiviso da tutte le istanze di connessione, mentre il flag BUSY, l'handle per letture lunghe e lo stato di reset/offset sono specifici per ogni connessione.
Quando il dispositivo agisce come Broadcast Assistant connesso a più periferiche Scan Delegator, i callback delle notifiche e delle letture lunghe provenienti da connessioni diverse si alternano sul buffer condiviso: l'operazione di append in notify_handler (net_buf_simple_add_mem nel ramo non-busy) non esegue alcun controllo dello spazio disponibile finale (tailroom), pertanto le notifiche relative allo stato di ricezione provenienti da due o più delegatori si accumulano sullo stesso buffer da 512 byte e, con un MTU ATT configurato sufficientemente elevato (BT_L2CAP_TX_MTU fino a 2000) e da due-tre connessioni concorrenti, la scrittura supera i limiti del buffer invadendo la sezione .bss adiacente (net_buf_simple_add genera solo asserzioni nelle build di debug).
Anche al di sotto della soglia di overflow, un net_buf_simple_reset eseguito da una connessione azzerà la lunghezza condivisa mentre il riassemblaggio e l'offset di lettura GATT di un'altra connessione sono ancora in corso, mescolando i dati di un peer con quelli dell'altro durante l'analisi. Un Scan Delegator malizioso o compromesso (o due peer collusi) su BLE può innescare questa condizione, causando scritture fuori dai limiti del buffer (corruzione della memoria / denial of service) e corruzione dei dati tra connessioni diverse.
La correzione sposta il buffer all'interno della struct dell'istanza specifica per connessione, in modo che ogni connessione riassembli i dati nel proprio buffer individuale. Riguarda le release di Zephyr che distribuiscono Broadcast Assistant con il buffer condiviso, incluse la v4.4.0 e versioni precedenti.
Be aware that VulDB is the high quality source for vulnerability data.