
DJI Drone DUML Command Injection over Bluetooth — Proof of Concept для CVE-2026-78306
Запись CVE: https://www.cve.org/CVERecord?id=CVE-2026-78306
NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306
Дроны DJI предоставляют Bluetooth-интерфейс, используемый для установления соединения с Wi-Fi-интерфейсом дрона и обмена учётными данными Wi-Fi.
Bluetooth-интерфейс проверяет доверенный UUID устройства для трёх команд:
Для остальных команд такая же проверка аутентификации не требуется. В результате удалённый атакующий в пределах радиуса действия Bluetooth может отправлять дрону несанкционированные команды DUML.
В зависимости от команды атакующий может изменить конфигурацию дрона, включая смену пароля Wi-Fi и потенциальное получение доступа к внутренней сети дрона; включение или отключение радиинтерфейсов; перезагрузку или выключение аппарата; сброс конфигурации, что приводит к удалению всех видео и фотографий, снятых дроном; а также выполнение других действий.
POC предоставляет реестр команд, позволяющий тестировать доступные команды без изменения исходного кода Python. Реестр команд, включая команду, получателя, требования аутентификации и описание каждой команды, определён в commands.json.
| Продукт | Затронутая версия |
|---|---|
| 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
Следующие команды зарегистрированы в commands.json. POC разделяет команды на операции чтения, конфигурации, управления радиоинтерфейсами, сброса, системные и параметрические.
| Команда | Что делает |
|---|---|
| GET SSID | Получает настроенный Wi-Fi SSID. |
| GET PSK | Получает предварительный ключ Wi-Fi WPA2. |
| GET MAC | Получает MAC-адрес точки доступа Wi-Fi. |
| GET Country Code | Получает двухбуквенный код страны регулирования. |
| GET Channel | Получает текущий активный Wi-Fi-канал. |
| GET Band | Получает настроенный выбор диапазона 2,4/5 ГГц. |
| GET RSSI | Запрашивает обработчик RSSI; данная сборка прошивки содержит заглушку. |
| GET WiFi/BT status | Получает состояние радиомодулей Wi-Fi и Bluetooth. |
| GET Device Info/Model | Получает информацию об устройстве и модели. |
| GET Version | Получает версию демона. |
| GET Bluetooth Name | Получает имя Bluetooth-устройства. |
| Команда | Что делает |
|---|---|
| SET SSID | Изменяет настроенный Wi-Fi SSID. |
| SET PSK | Изменяет настроенный пароль Wi-Fi. |
| SET MAC Address | Изменяет конфигурацию BSSID Wi-Fi во время выполнения. |
| SET Country Code | Изменяет настроенный код страны регулирования. |
| SET Country Code Ext | Обрабатывает расширенную конфигурацию кода страны. |
| SET Channel | Изменяет Wi-Fi-канал и вызывает перезапуск точки доступа. |
Эти операции классифицируются в POC как danger и поэтому требуют явного подтверждения перед отправкой.
| Команда | Что делает |
|---|---|
| Start WIFI | Запускает Wi-Fi-интерфейс и связанные службы. |
| Stop WIFI | Останавливает Wi-Fi-интерфейс. |
| Restart WIFI + BT | Перезапускает подсистемы Wi-Fi и Bluetooth. |
| Start Bluetooth | Запускает подсистему Bluetooth. |
| Stop Bluetooth | Останавливает подсистему Bluetooth и завершает текущий сеанс. |
| Sysmode power control | Управляет состоянием питания Wi-Fi/Bluetooth. |
| Команда | Что делает |
|---|---|
| Factory Reset WIFI | Восстанавливает конфигурацию Wi-Fi до состояния по умолчанию. |
| Factory Restore Params | Восстанавливает таблицу параметров сетевой конфигурации до заводских значений. |
POC помечает обе операции как опасные, поскольку они изменяют постоянную конфигурацию.