
DJI ड्रोन ब्लूटूथ DUML कमांड इंजेक्शन का शोषण करने वाला प्रूफ-ऑफ-कॉन्सेप्ट, जो क्रेडेंशियल पढ़ने, Wi-Fi कॉन्फ़िगरेशन बदलने और विमान प्रणालियों को नियंत्रित करने के लिए अनधिकृत कमांड भेजता है।
CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-78306
NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306
DJI ड्रोन एक ब्लूटूथ इंटरफ़ेस प्रदान करते हैं जिसका उपयोग ड्रोन के Wi-Fi इंटरफ़ेस से कनेक्शन स्थापित करने और Wi-Fi क्रेडेंशियल्स का आदान-प्रदान करने के लिए किया जाता है
ब्लूटूथ इंटरफ़ेस तीन कमांडों के लिए डिवाइस के विश्वसनीय UUID की जाँच करता है:
शेष कमांडों के लिए वही प्रमाणीकरण जाँच आवश्यक नहीं है। परिणामस्वरूप, ब्लूटूथ रेंज के भीतर एक रिमोट हमलावर ड्रोन को अनधिकृत DUML कमांड भेजने में सक्षम हो सकता है।
कमांड के आधार पर, एक हमलावर ड्रोन के कॉन्फ़िगरेशन को संशोधित करने में सक्षम हो सकता है, जिसमें Wi-Fi पासवर्ड बदलना और संभावित रूप से ड्रोन के आंतरिक नेटवर्क तक पहुँच प्राप्त करना; रेडियो इंटरफ़ेस को सक्षम या अक्षम करना; एयरक्राफ्ट को पुनः आरंभ करना या बंद करना; कॉन्फ़िगरेशन को रीसेट करना, जिससे ड्रोन द्वारा कैप्चर किए गए सभी वीडियो और तस्वीरें मिट जाती हैं; और अन्य क्रियाएँ करना शामिल है।
नोट: यह एक्सप्लॉइट वर्तमान में Wi-Fi के माध्यम से ड्रोन को नियंत्रित करते समय उड़ान के दौरान, और रेडियो के माध्यम से ड्रोन को नियंत्रित करते समय ज़मीन पर/जब ड्रोन लैंड होता है, तब काम करता है।
| उत्पाद | प्रभावित संस्करण |
|---|---|
| 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 में पंजीकृत हैं और सीधे उसी से उत्पन्न होते हैं। danger के रूप में चिह्नित कमांड भेजे जाने से पहले स्पष्ट पुष्टि की मांग करते हैं।
| कमांड | यह क्या करता है |
|---|---|
| GET WiFi SSID [AUTH] | कॉन्फ़िगर किया गया Wi-Fi SSID प्राप्त करता है। इसके लिए विश्वसनीय UUID आवश्यक है। |
| GET WiFi Password [AUTH] | Wi-Fi WPA2 प्री-शेयर्ड कुंजी प्राप्त करता है। इसके लिए विश्वसनीय UUID आवश्यक है। |
| GET WiFi MAC address [AUTH] | Wi-Fi AP MAC पता प्राप्त करता है। इसके लिए विश्वसनीय UUID आवश्यक है। |
| GET Country Code | दो-अक्षरों वाला नियामक देश कोड प्राप्त करता है। |
| GET Channel | वर्तमान में सक्रिय Wi-Fi चैनल प्राप्त करता है। |
| GET Band | कॉन्फ़िगर किया गया 2.4/5 GHz बैंड चयन प्राप्त करता है। |
| GET RSSI [stub] | RSSI हैंडलर को क्वेरी करता है; यह बिल्ड एक स्टब मान लौटाता है। |
| GET WiFi/BT status | Wi-Fi और Bluetooth रेडियो की स्थिति प्राप्त करता है। |
| GET Version | फ़र्मवेयर संस्करण स्ट्रिंग प्राप्त करता है। |
| कमांड | यह क्या करता है |
|---|---|
| SET NEW WiFi SSID | कॉन्फ़िगर किया गया Wi-Fi SSID बदलता है। |
| SET NEW WiFi Password | कॉन्फ़िगर किया गया Wi-Fi पासवर्ड बदलता है। |
| SET NEW WiFi MAC Address | रनटाइम Wi-Fi BSSID कॉन्फ़िगरेशन बदलता है। |
| SET NEW Country Code | कॉन्फ़िगर किया गया नियामक देश कोड बदलता है। |
| SET NEW Country Code Ext | विस्तारित देश-कोड कॉन्फ़िगरेशन को संभालता है। |
| SET NEW Channel | Wi-Fi चैनल बदलता है और AP को पुनः आरंभ करने का कारण बनता है। |
POC में इन ऑपरेशनों को danger के रूप में वर्गीकृत किया गया है और इसलिए भेजे जाने से पहले स्पष्ट पुष्टि की आवश्यकता होती है।
| कमांड | यह क्या करता है |
|---|---|
| Start WiFi | Wi-Fi इंटरफ़ेस शुरू करता है। |
| Stop WiFi | Wi-Fi इंटरफ़ेस बंद करता है। |
| Restart WiFi + Bluetooth | Wi-Fi और Bluetooth रेडियो पुनः आरंभ करता है। |
| Start Bluetooth | Bluetooth रेडियो शुरू करता है। |
| Stop Bluetooth | Bluetooth रेडियो बंद करता है और वर्तमान सत्र समाप्त करता है। |
| Sysmode power control | Wi-Fi/Bluetooth रेडियो की पावर स्थिति को नियंत्रित करता है। |
| कमांड | यह क्या करता है |
|---|---|
| Factory Reset WIFI | Wi-Fi कॉन्फ़िगरेशन को उसकी डिफ़ॉल्ट स्थिति में पुनर्स्थापित करता है। |
| Factory Restore Params | नेटवर्क कॉन्फ़िगरेशन को फ़ैक्टरी डिफ़ॉल्ट में पुनर्स्थापित करता है। |
POC दोनों ऑपरेशनों को खतरनाक के रूप में चिह्नित करता है क्योंकि वे स्थायी कॉन्फ़िगरेशन को संशोधित करते हैं।
| कमांड | यह क्या करता है |
|---|---|
| Start The Drone FTP server | विमान की FTP सेवा शुरू करता है। |
| Enable Storage Export | स्टोरेज एक्सपोर्ट सक्षम करता है। |
| Disable Storage Export | स्टोरेज एक्सपोर्ट अक्षम करता है। |
| reboot The Drone | विमान को पुनः बूट करता है। |
| poweroff The Drone | विमान को बंद करता है (वापस चालू करने के लिए भौतिक पहुँच आवश्यक है)। |
| powersave mode The Drone | विमान को पावर-सेव मोड में डालता है। |
| कमांड | यह क्या करता है |
|---|---|
| Start Remote Controller DoS | रिमोट-कंट्रोलर डिनायल-ऑफ़-सर्विस अनुक्रम का पहला चरण; विमान को उस स्थिति में डालता है जिसकी डिस्कनेक्ट चरण को आवश्यकता होती है। |
| Stop Remote Controller DoS | अनुक्रम पूरा करता है: विमान कंट्रोलर लिंक की सेवा करना बंद कर देता है, इसलिए रिमोट कंट्रोलर विमान से संपर्क खो देता है। पहले चरण को पहले चलाएँ। |
| Remote Controller Recover | विमान को सामान्य संचालन में लौटाने का प्रयास करता है। |
| कमांड | यह क्या करता है |
|---|---|
| Change a parameter | 32-बिट नाम हैश का उपयोग करके ड्रोन कॉन्फ़िगरेशन पैरामीटर बदलता है। |
| Reset a parameter | कॉन्फ़िगरेशन पैरामीटर को उसके फ़र्मवेयर डिफ़ॉल्ट में रीसेट करता है। |
POC flyc_parameters.txt से पैरामीटर नाम प्राप्त करता है और इंटरैक्टिव पैरामीटर चयन प्रदान करता है। किसी ज्ञात पैरामीटर को जोड़ने के लिए जिसे आप संशोधित या रीसेट करना चाहते हैं, उसका नाम flyc_parameters.txt में जोड़ें। फिर POC शुरू होने पर वह पैरामीटर चयन के लिए उपलब्ध होगा।
danger के रूप में वर्गीकृत कमांड को प्रसारण से पहले स्पष्ट पुष्टि की आवश्यकता होती है।
पुष्टि स्क्रीन निम्नलिखित जैसी जानकारी प्रदर्शित करती है:
──────────────────────────────────────────────────────────────────────
!!! DANGEROUS COMMAND !!!
──────────────────────────────────────────────────────────────────────
COMMAND Factory Reset WIFI
ROUTE 07/0f → 0x07
PAYLOAD (none)
DOES resets the Wi-Fi config and regenerates the PSK
WARNING Disconnects every device currently on the drone's Wi-Fi.
──────────────────────────────────────────────────────────────────────
Type YES to send:
Change a parameter फ़ंक्शन flyc_parameters.txt में सूचीबद्ध ज्ञात कॉन्फ़िगरेशन पैरामीटर तक पहुँच प्रदान करता है।
Reset a parameter चयनित पैरामीटर को उसके फ़र्मवेयर डिफ़ॉल्ट पर पुनर्स्थापित करने के लिए reset_cfg_item का उपयोग करता है।
निकाले गए पैरामीटर की पूरी सूची और अधिक विवरण के लिए, FLYC Parameters wiki पृष्ठ देखें।