Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Dji_ble_vuln — DJI Drone DUML Command Injection over Bluetooth — Proof of Concept for CVE-2026-78306 | Kitploit
Tools/GitHubGitHub/feedbeef/dji_ble_vuln
Embedded Systems SecurityBluetooth SecurityIoT SecurityPayload GenerationVulnerability AnalysisExploitationWireless SecurityCommand and ControlHardware & IoT Security
GitHubfeedbeef/dji_ble_vuln

Dji_ble_vuln

DJI Drone DUML Command Injection over Bluetooth — Proof of Concept for CVE-2026-78306

9421 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository

CVE-2026-78306 — DJI Drone DUML Command Injection over Bluetooth POC

CVE-2026-78306

CVE record: https://www.cve.org/CVERecord?id=CVE-2026-78306

NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306

image image

Description

DJI drones expose a Bluetooth interface used to establish a connection to the drone's Wi-Fi interface and exchange Wi-Fi credentials.

The Bluetooth interface checks the device's trusted UUID for three commands:

  • Get SSID
  • Get PSK
  • Get MAC address

The remaining commands do not require the same authentication check. As a result, a remote attacker within Bluetooth range may be able to send unauthorized DUML commands to the drone.

Depending on the command, an attacker may be able to modify the drone's configuration, including changing the Wi-Fi password and potentially gaining access to the drone's internal network; enabling or disabling radio interfaces; restarting or powering off the aircraft; resetting the configuration, which wipes all videos and pictures captured by the drone; and performing other actions.

The POC provides a command registry that allows the available commands to be tested without modifying the Python source code. The command registry, including the command, receiver, authentication requirements, and description of each command, is defined in commands.json.

Affected Products

ProductAffected Version
DJI Neo0 – 01.00.0400
DJI Neo 20 – 01.00.0500
DJI Flip0 – 01.00.1200
DJI Air 30 – 01.00.1600
DJI Air 3S0 – 01.00.1400
DJI Avata 20 – 01.00.0400
DJI Avata 3600 – 01.00.0300
DJI Mavic 30 – 01.00.1400
DJI Mavic 3 Classic0 – 01.00.0800
DJI Mavic 3 Pro0 – 01.01.0700
DJI Mavic 4 Pro0 – 01.00.0500
DJI Mini 20 – 01.07.0200
DJI Mini 30 – 01.00.0500
DJI Mini 3 Pro0 – 01.00.0900
DJI Mini 4 Pro0 – 01.00.1100
DJI Mini 5 Pro0 – 01.00.0600

DEMO

https://github.com/user-attachments/assets/57f51df2-5160-404c-9fd3-2a3a8b700008

Installation

1. Install the POC

# 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

2. Power on the drone

3. Run the POC

python3 ble_console.py

4. After scan select the Drone SSID

Command Reference

The following commands are registered in commands.json. The POC separates commands into read, configuration, radio-control, reset, system, and parameter operations.

Read Commands

CommandWhat it does
GET SSIDRetrieves the configured Wi-Fi SSID.
GET PSKRetrieves the Wi-Fi WPA2 pre-shared key.
GET MACRetrieves the Wi-Fi AP MAC address.
GET Country CodeRetrieves the two-letter regulatory country code.
GET ChannelRetrieves the currently active Wi-Fi channel.
GET BandRetrieves the configured 2.4/5 GHz band selection.
GET RSSIQueries the RSSI handler; this firmware build contains a stub implementation.
GET WiFi/BT statusRetrieves the Wi-Fi and Bluetooth radio state.
GET Device Info/ModelRetrieves device and model information.
GET VersionRetrieves the daemon version.
GET Bluetooth NameRetrieves the Bluetooth device name.

Write Configuration Commands

CommandWhat it does
SET SSIDChanges the configured Wi-Fi SSID.
SET PSKChanges the configured Wi-Fi password.
SET MAC AddressChanges the runtime Wi-Fi BSSID configuration.
SET Country CodeChanges the configured regulatory country code.
SET Country Code ExtHandles extended country-code configuration.
SET ChannelChanges the Wi-Fi channel and causes the AP to restart.

These operations are classified as danger in the POC and therefore require explicit confirmation before being sent.

Radio Control Commands

CommandWhat it does
Start WIFIStarts the Wi-Fi interface and associated services.
Stop WIFIStops the Wi-Fi interface.
Restart WIFI + BTRestarts the Wi-Fi and Bluetooth subsystems.
Start BluetoothStarts the Bluetooth subsystem.
Stop BluetoothStops the Bluetooth subsystem and terminates the current session.
Sysmode power controlControls the Wi-Fi/Bluetooth power state.

Reset Commands

CommandWhat it does
Factory Reset WIFIRestores the Wi-Fi configuration to its default state.
Factory Restore ParamsRestores the network configuration parameter table to factory defaults.

The POC marks both operations as dangerous because they modify persistent configuration.

System Commands

Download Tool