
Iniezione di comandi DUML su drone DJI via Bluetooth — Proof of Concept per CVE-2026-78306
Record CVE: https://www.cve.org/CVERecord?id=CVE-2026-78306
NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306
I droni DJI espongono un'interfaccia Bluetooth utilizzata per stabilire una connessione all'interfaccia Wi-Fi del drone e scambiare le credenziali Wi-Fi.
L'interfaccia Bluetooth verifica l'UUID attendibile del dispositivo per tre comandi:
I comandi rimanenti non richiedono lo stesso controllo di autenticazione. Di conseguenza, un attaccante remoto nel raggio d'azione del Bluetooth potrebbe essere in grado di inviare comandi DUML non autorizzati al drone.
A seconda del comando, un attaccante potrebbe essere in grado di modificare la configurazione del drone, incluso il cambio della password Wi-Fi e potenzialmente ottenere l'accesso alla rete interna del drone; abilitare o disabilitare le interfacce radio; riavviare o spegnere il velivolo; ripristinare la configurazione, che cancella tutti i video e le foto catturate dal drone; ed eseguire altre azioni.
Il POC fornisce un registro dei comandi che consente di testare i comandi disponibili senza modificare il codice sorgente Python. Il registro dei comandi, inclusi il comando, il ricevitore, i requisiti di autenticazione e la descrizione di ciascun comando, è definito in commands.json.
| Prodotto | Versione interessata |
|---|---|
| DJI Neo | 0 – 01.00.0400 |
| DJI Neo 2 | 0 – 01.00.0500 |
| DJI Flip | 0 – 01.00.1200 |
| DJI Air 3 | 0 – 01.00.1600 |
| DJI Air 3S | 0 – 01.00.1400 |
| DJI Avata 2 | 0 – 01.00.0400 |
| DJI Avata 360 | 0 – 01.00.0300 |
| DJI Mavic 3 | 0 – 01.00.1400 |
| DJI Mavic 3 Classic | 0 – 01.00.0800 |
| DJI Mavic 3 Pro | 0 – 01.01.0700 |
| DJI Mavic 4 Pro | 0 – 01.00.0500 |
| DJI Mini 2 | 0 – 01.07.0200 |
| DJI Mini 3 | 0 – 01.00.0500 |
| DJI Mini 3 Pro | 0 – 01.00.0900 |
| DJI Mini 4 Pro | 0 – 01.00.1100 |
| DJI Mini 5 Pro | 0 – 01.00.0600 |
https://github.com/user-attachments/assets/57f51df2-5160-404c-9fd3-2a3a8b700008
# Clone the repository
git clone https://github.com/Wh02m1/CVE-2026-78306.git
cd CVE-2026-78306-POC
# Create and activate a Python virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
python3 ble_console.py
I seguenti comandi sono registrati in commands.json. Il POC separa i comandi in operazioni di lettura, configurazione, controllo radio, reset, sistema e parametri.
| Comando | Cosa fa |
|---|---|
| GET SSID | Recupera l'SSID Wi-Fi configurato. |
| GET PSK | Recupera la chiave pre-condivisa WPA2 del Wi-Fi. |
| GET MAC | Recupera l'indirizzo MAC dell'AP Wi-Fi. |
| GET Country Code | Recupera il codice paese normativo di due lettere. |
| GET Channel | Recupera il canale Wi-Fi attualmente attivo. |
| GET Band | Recupera la selezione di banda 2.4/5 GHz configurata. |
| GET RSSI | Interroga l'handler RSSI; questa build del firmware contiene un'implementazione stub. |
| GET WiFi/BT status | Recupera lo stato delle radio Wi-Fi e Bluetooth. |
| GET Device Info/Model | Recupera le informazioni sul dispositivo e sul modello. |
| GET Version | Recupera la versione del daemon. |
| GET Bluetooth Name | Recupera il nome del dispositivo Bluetooth. |
| Comando | Cosa fa |
|---|---|
| SET SSID | Cambia l'SSID Wi-Fi configurato. |
| SET PSK | Cambia la password Wi-Fi configurata. |
| SET MAC Address | Cambia la configurazione BSSID Wi-Fi a runtime. |
| SET Country Code | Cambia il codice paese normativo configurato. |
| SET Country Code Ext | Gestisce la configurazione estesa del codice paese. |
| SET Channel | Cambia il canale Wi-Fi e causa il riavvio dell'AP. |
Queste operazioni sono classificate come danger nel POC e richiedono quindi una conferma esplicita prima di essere inviate.
| Comando | Cosa fa |
|---|---|
| Start WIFI | Avvia l'interfaccia Wi-Fi e i servizi associati. |
| Stop WIFI | Arresta l'interfaccia Wi-Fi. |
| Restart WIFI + BT | Riavvia i sottosistemi Wi-Fi e Bluetooth. |
| Start Bluetooth | Avvia il sottosistema Bluetooth. |
| Stop Bluetooth | Arresta il sottosistema Bluetooth e termina la sessione corrente. |
| Sysmode power control | Controlla lo stato di alimentazione Wi-Fi/Bluetooth. |
| Comando | Cosa fa |
|---|---|
| Factory Reset WIFI | Ripristina la configurazione Wi-Fi allo stato predefinito. |
| Factory Restore Params | Ripristina la tabella dei parametri di configurazione di rete ai valori di fabbrica. |
Il POC contrassegna entrambe le operazioni come pericolose perché modificano la configurazione persistente.