Il 24 agosto 2026 l'advisory ZDI-26-589 rende pubblica una vulnerabilità nel modulo A2DP di BlueZ, lo stack Bluetooth standard delle distribuzioni Linux. Uno stack-based buffer overflow nella gestione degli stream endpoint consente esecuzione remota di codice con privilegi di root a un attaccante che abbia completato il pairing con il sistema target. La coordinata tra TrendAI Zero Day Initiative e il maintainer del progetto ha prodotto una patch disponibile dal giugno 2026.
- ZDI-26-589 / CVE-2026-19774: stack-based buffer overflow nel parsing delle codec capability del modulo A2DP di BlueZ
- Condizione di attacco: pairing di un dispositivo Bluetooth malevolo network-adjacent con il sistema target
- Impatto: esecuzione di codice arbitrario nel contesto di root
- La patch upstream GitHub #2251, mergeata il 22 giugno 2026, raddoppia la dimensione del buffer per la storage delle codec capability
- CVSS non disponibile nell'advisory; versioni affette non specificate
Il difetto: buffer insufficiente per la rappresentazione stringa delle capability
La radice del problema risiede in una discrepanza tra formato di storage e spazio allocato nel codice di gestione delle codec capability di A2DP. Il buffer stack-based destinato a contenere i dati di capability viene riempito attraverso una routine che non valida la lunghezza dei dati forniti dall'utente prima della copia in memoria.
"Codec capability is one byte long (max 255) the storage format is 02hhx which means each byte ends up as 2 characters so the buffer needs to be doubled in order to handle capabilities of that size." — Luiz Augusto von Dentz, commit patch BlueZ #2251
La patch, segnalata da p0her di TeamH4C in collaborazione con TrendAI Zero Day Initiative e approvata il 22 giugno 2026, modifica cinque linee in a2dp.c. La dimensione del buffer viene raddoppiata per accomodare la rappresentazione stringa delle capability.
Il formato 02hhx converte ogni byte in due caratteri esadecimali. Con una capability massima di 255 byte, la rappresentazione stringa richiede 510 caratteri più il terminatore. Il buffer originale non era dimensionato per questa espansione.
La catena di attacco: dal pairing all'esecuzione come root
L'advisory ZDI descrive una condizione di attacco che richiede prossimità di rete e il completamento della procedura di pairing tra dispositivo malevolo e sistema target. Questo requisito posiziona la vulnerabilità in una categoria intermedia: non è sfruttabile senza interazione, ma il pairing non garantisce automaticamente validazione dei dati successivamente scambiati.
La compromissione avviene durante la negoziazione degli stream endpoint A2DP, fase in cui il dispositivo remoto presenta le proprie codec capability. L'advisory ZDI conferma che l'impatto è esecuzione di codice "nel contesto di root", indicando che il demone Bluetooth opera con privilegi elevati sulle installazioni affette.
La citazione ufficiale dell'advisory precisa: "This vulnerability allows network-adjacent attackers to execute arbitrary code on affected installations of BlueZ." La stessa fonte aggiunge: "The specific flaw exists within the handling of the stream endpoints. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length stack-based buffer."
La timeline coordinata
La vulnerabilità è stata riportata al vendor l'8 aprile 2026. Il merge della patch è avvenuto il 22 giugno 2026. La release pubblica coordinata dell'advisory ZDI è datata 24 agosto 2026.
Il record CVE-2026-19774 risulta attualmente in stato "reserved" presso CVE.org: il numero è assegnato e confermato, ma i dettagli tecnici non sono ancora stati popolati dalla CNA responsabile. L'advisory ZDI non specifica un punteggio CVSS né il relativo vector.
Versioni specifiche di BlueZ interessate non sono dettagliate nel materiale pubblicato da ZDI. La patch GitHub #2251 rappresenta comunque il fix canonico upstream, identificabile dalla modifica esplicita del buffer in a2dp.c.
Cosa fare adesso
- Verificare la presenza della patch GitHub #2251 nel proprio repository di distribuzione: il commit modifica esplicitamente il buffer in
a2dp.ce rappresenta il fix canonico upstream - Limitare il pairing Bluetooth a dispositivi autorizzati, dato che il pairing di un dispositivo malevolo è il prerequisito per l'exploit
- Monitorare l'aggiornamento del record CVE-2026-19774 per l'eventuale pubblicazione di CVSS e versioni affette
- Controllare che i pacchetti BlueZ della propria distribuzione Linux includano il commit di giugno 2026
Analisi: il confine tra autenticazione e validazione
L'incidente evidenzia una separazione ricorrente nei protocolli di comunicazione: il pairing Bluetooth autentica l'identità del dispositivo, non la correttezza dei dati che esso trasmette. La fase di negoziazione degli stream endpoint A2DP, che segue il pairing, si presume protetta dalla fiducia stabilita in precedenza. Questa assunzione ha permesso che un buffer di dimensione fissa ricevesse dati di lunghezza controllata dall'attaccante.
Il formato di serializzazione 02hhx, scelto per rappresentare in leggibilità umana un valore binario, ha generato un errore di dimensionamento classico: la conversione espande il dato senza che il buffer di destinazione fosse adeguato. La discrepanza tra 255 byte di capability massima e la rappresentazione di 510 caratteri più terminatore è il dettaglio tecnico che ha reso il bug sfruttabile.
La segnalazione da parte di p0her di TeamH4C, coordinata attraverso TrendAI Zero Day Initiative, ha prodotto una disclosure strutturata con tempi di risposta del vendor di circa due mesi e mezzo tra report e patch, e ulteriori due mesi tra patch e pubblicazione dell'advisory.
Le informazioni sono basate sull'advisory ZDI primario con corroborazione dalla patch GitHub. Il record CVE-2026-19774 è in stato reserved; CVSS e versioni affette non sono disponibili nelle fonti consultate.
Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.
Fonti
- http://www.zerodayinitiative.com/advisories/ZDI-26-589/
- https://www.cve.org/CVERecord?id=CVE-2026-19774
- https://github.com/bluez/bluez/pull/2251
- http://www.zerodayinitiative.com/advisories/upcoming/
- https://www.trendmicro.com/