
DJI Drone DUML Command Injection über Bluetooth — Proof of Concept für CVE-2026-78306
CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-78306
NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306
DJI-Drohnen stellen eine Bluetooth-Schnittstelle bereit, die verwendet wird, um eine Verbindung zur Wi-Fi-Schnittstelle der Drohne herzustellen und Wi-Fi-Anmeldedaten auszutauschen.
Die Bluetooth-Schnittstelle prüft die vertrauenswürdige UUID des Geräts für drei Befehle:
Die übrigen Befehle erfordern nicht dieselbe Authentifizierungsprüfung. Infolgedessen kann ein Angreifer in Bluetooth-Reichweite möglicherweise unbefugte DUML-Befehle an die Drohne senden.
Je nach Befehl kann ein Angreifer möglicherweise die Konfiguration der Drohne ändern, einschließlich des Änderns des Wi-Fi-Passworts und möglicherweise des Erlangens von Zugriff auf das interne Netzwerk der Drohne; Funk-Schnittstellen aktivieren oder deaktivieren; das Fluggerät neu starten oder ausschalten; die Konfiguration zurücksetzen, wodurch alle von der Drohne aufgenommenen Videos und Bilder gelöscht werden; und andere Aktionen ausführen.
Der POC stellt eine Befehlsregistrierung bereit, die es ermöglicht, die verfügbaren Befehle zu testen, ohne den Python-Quellcode zu ändern. Die Befehlsregistrierung, einschließlich des Befehls, des Empfängers, der Authentifizierungsanforderungen und der Beschreibung jedes Befehls, ist in commands.json definiert.
| Produkt | Betroffene Version |
|---|---|
| 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
Die folgenden Befehle sind in commands.json registriert. Der POC unterteilt Befehle in Lese-, Konfigurations-, Funksteuerungs-, Reset-, System- und Parameter-Operationen.
| Befehl | Was er bewirkt |
|---|---|
| GET SSID | Ruft die konfigurierte Wi-Fi-SSID ab. |
| GET PSK | Ruft den Wi-Fi-WPA2-Pre-Shared-Key ab. |
| GET MAC | Ruft die Wi-Fi-AP-MAC-Adresse ab. |
| GET Country Code | Ruft den zweibuchstabigen regulatorischen Ländercode ab. |
| GET Channel | Ruft den aktuell aktiven Wi-Fi-Kanal ab. |
| GET Band | Ruft die konfigurierte 2,4/5-GHz-Bandauswahl ab. |
| GET RSSI | Fragt den RSSI-Handler ab; dieser Firmware-Build enthält eine Stub-Implementierung. |
| GET WiFi/BT status | Ruft den Wi-Fi- und Bluetooth-Funkstatus ab. |
| GET Device Info/Model | Ruft Geräte- und Modellinformationen ab. |
| GET Version | Ruft die Daemon-Version ab. |
| GET Bluetooth Name | Ruft den Bluetooth-Gerätenamen ab. |
| Befehl | Was er bewirkt |
|---|---|
| SET SSID | Ändert die konfigurierte Wi-Fi-SSID. |
| SET PSK | Ändert das konfigurierte Wi-Fi-Passwort. |
| SET MAC Address | Ändert die Laufzeit-Wi-Fi-BSSID-Konfiguration. |
| SET Country Code | Ändert den konfigurierten regulatorischen Ländercode. |
| SET Country Code Ext | Behandelt die erweiterte Ländercode-Konfiguration. |
| SET Channel | Ändert den Wi-Fi-Kanal und veranlasst den AP zum Neustart. |
Diese Operationen werden im POC als danger klassifiziert und erfordern daher eine ausdrückliche Bestätigung, bevor sie gesendet werden.
| Befehl | Was er bewirkt |
|---|---|
| Start WIFI | Startet die Wi-Fi-Schnittstelle und zugehörige Dienste. |
| Stop WIFI | Stoppt die Wi-Fi-Schnittstelle. |
| Restart WIFI + BT | Startet die Wi-Fi- und Bluetooth-Subsysteme neu. |
| Start Bluetooth | Startet das Bluetooth-Subsystem. |
| Stop Bluetooth | Stoppt das Bluetooth-Subsystem und beendet die aktuelle Sitzung. |
| Sysmode power control | Steuert den Wi-Fi/Bluetooth-Energiezustand. |
| Befehl | Was er bewirkt |
|---|---|
| Factory Reset WIFI | Stellt die Wi-Fi-Konfiguration auf ihren Standardzustand wieder her. |
| Factory Restore Params | Stellt die Netzwerkkonfigurations-Parametertabelle auf Werkseinstellungen wieder her. |
Der POC markiert beide Operationen als gefährlich, da sie die persistente Konfiguration ändern.