Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Dji_ble_vuln — DJIドローン DUML コマンドインジェクション(Bluetooth経由) — CVE-2026-78306 の概念実証 | Kitploit
ツール/GitHubGitHub/feedbeef/dji_ble_vuln
組み込みシステムセキュリティBluetoothセキュリティIoTセキュリティペイロード生成脆弱性分析エクスプロイトワイヤレスセキュリティコマンド&コントロールハードウェアとIoTセキュリティ
GitHubfeedbeef/dji_ble_vuln

Dji_ble_vuln

DJIドローン DUML コマンドインジェクション(Bluetooth経由) — CVE-2026-78306 の概念実証

10日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

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

説明

DJIドローンは、ドローンのWi-Fiインターフェースへの接続を確立し、Wi-Fi認証情報を交換するために使用されるBluetoothインターフェースを公開しています。

Bluetoothインターフェースは、デバイスの信頼済みUUIDを次の3つのコマンドに対してチェックします:

  • Get SSID
  • Get PSK
  • Get MAC address

残りのコマンドには同じ認証チェックが要求されません。その結果、Bluetooth範囲内にいるリモート攻撃者が、ドローンに対して不正なDUMLコマンドを送信できる可能性があります。

コマンドによっては、攻撃者がドローンの設定を変更できる可能性があります。これにはWi-Fiパスワードの変更や、ドローンの内部ネットワークへのアクセス取得の可能性、無線インターフェースの有効化または無効化、機体の再起動または電源オフ、設定のリセット(ドローンで撮影されたすべての動画と写真が消去されます)、その他の操作が含まれます。

このPOCは、Pythonソースコードを変更することなく利用可能なコマンドをテストできるコマンドレジストリを提供します。コマンド、レシーバー、認証要件、および各コマンドの説明を含むコマンドレジストリは、commands.jsonで定義されています。

影響を受ける製品


DEMO

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

インストール

1. POCのインストール

root@kitploit:~
# 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. ドローンの電源を入れる

3. POCの実行

root@kitploit:~
python3 ble_console.py

4. スキャン後、ドローンのSSIDを選択する

コマンドリファレンス

以下のコマンドはcommands.jsonに登録されています。このPOCはコマンドを読み取り、設定、無線制御、リセット、システム、およびパラメータ操作に分類します。

読み取りコマンド

書き込み設定コマンド

これらの操作はPOCではdangerに分類されるため、送信前に明示的な確認が必要です。

無線制御コマンド

リセットコマンド

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.

POCは、これらの操作が永続的な設定を変更するため、両方とも危険であるとマークしています。

システムコマンド

パラメータコマンド

CommandWhat it does
Change a parameterChanges a drone configuration parameter using its 32-bit name hash.
Reset a parameterResets a configuration parameter to its firmware default.

POCはflyc_parameters.txtからパラメータ名を取得し、対話的なパラメータ選択を提供します。変更またはリセットしたい既知のパラメータを追加するには、その名前をflyc_parameters.txtに追加します。その後、POCの起動時にそのパラメータを選択できるようになります。

確認画面

dangerに分類されたコマンドは、送信前に明示的な確認が必要です。

確認画面には、次のような情報が表示されます:

root@kitploit:~
──────────────────────────────────────────────────────────────────────
  !!!  DANGEROUS COMMAND  !!!
──────────────────────────────────────────────────────────────────────
 COMMAND    device_reset L1 config
 ROUTE      00/de -> ve_air:1
 PAYLOAD    11 01 00 00 00 00
 DOES       system / FC / gimbal / camera / wifi / sdr config reset
 WARNING    The FC configuration reset can restart the motors.
──────────────────────────────────────────────────────────────────────
 Type YES to send:

パラメータ

Change a parameter機能は、flyc_parameters.txtにリストされている既知の設定パラメータへのアクセスを提供します。

Reset a parameterはreset_cfg_itemを使用して、選択したパラメータをファームウェアのデフォルトに復元します。

抽出されたパラメータの完全なリストと詳細については、FLYC Parameters wiki pageを参照してください。


マクロ

POCはいくつかの定義済みマクロも提供します:

MacroDescription
Restart WifiStops and starts Wi-Fi (0x42 followed by 0x41).
SET NEW PSK + Restart wifiChanges the PSK and then restarts Wi-Fi.
Probe read commandsSends the registered read commands and reports which commands respond.

マクロは個々のコマンドエントリとは別に定義されています。


ファイル


⚠️ 免責事項

⚠️ 警告: この概念実証は、教育、セキュリティ研究、および許可されたペネトレーションテストの目的に厳密に限定して使用されることを意図しています。

このPOCは、DJIのBluetooth/DUMLコマンド処理インターフェースにおけるセキュリティ問題を実証します。一部のコマンドは、デバイス設定の変更、無線インターフェースの無効化、接続の中断、機体の再起動または電源オフ、設定のリセット、または保存データの削除を行う可能性があります。

⚠️ 自身が所有していない、またはテストする明示的な許可を持っていない航空機、デバイス、ネットワーク、またはシステムに対して、このPOCを使用しないでください。

一部のコマンドは、データ損失、設定変更、接続の喪失、デバイスの混乱、またはその他の意図しない結果を引き起こす可能性があります。テストは、航空機および周囲の人や財産が危険にさらされない制御された環境でのみ実施してください。

著者は、このPOCの使用または誤用に起因するいかなる損害、データ損失、サービス中断、航空機の運用、またはその他の結果についても責任を負いません。

⚠️ このPOCを使用することにより、あなたは自身のテストが許可されており、適用されるすべての法律、規制、および責任ある開示要件に準拠していることを保証する責任を負うことに同意するものとします。

ツールをダウンロード
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
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.
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.
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.
CommandWhat it does
ftpd_startStarts the dji_ftpd service.
storage_export_enableEnables the storage-export configuration.
storage_export_disableDisables the storage-export configuration.
play_soundTriggers an aircraft sound.
muteMutes the aircraft speaker.
unmuteUnmutes the aircraft speaker.
reboot_plainReboots the aircraft.
reboot_poweroffPowers off the aircraft.
reboot_powersavePlaces the aircraft into power-save mode.
device_reset L1 configResets the system, flight controller, gimbal, camera, Wi-Fi, and SDR configurations.
device_reset L2 +MEDIAPerforms the L1 reset and wipes media storage, including pictures and videos captured by the drone.
device_reset L3 +logPerforms the L2 reset and additionally clears the system logs.
FileRole
ble_console.pyMain entry point, menu and command execution.
commands.jsonCommand registry and command descriptions.
ble_transport.pyBluetooth GATT scanning, connection and response handling.
duml_protocol.pyDUML v1 packet construction and CRC handling.
duml_decoders.pyResponse decoding and return-code handling.
payload_builders.pyInteractive payload generation.
parameters.pyConfiguration parameter hashing and operations.
terminal.pyTerminal UI, prompts and output handling.
flyc_parameters.txtKnown configuration parameter names.
requirements.txtPython dependencies.