
حقن أوامر DUML في طائرة DJI Drone عبر Bluetooth — إثبات مفهوم لـ 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 | يسترجع SSID الخاص بـ Wi-Fi المُهيأ. |
| GET PSK | يسترجع مفتاح WPA2 المشترك المسبق الخاص بـ Wi-Fi. |
| GET MAC | يسترجع عنوان MAC لنقطة الوصول Wi-Fi. |
| GET Country Code | يسترجع رمز البلد التنظيمي المكوّن من حرفين. |
| GET Channel | يسترجع قناة Wi-Fi النشطة حاليًا. |
| GET Band | يسترجع اختيار النطاق 2.4/5 GHz المُهيأ. |
| GET RSSI | يستعلم عن معالج RSSI؛ يحتوي بناء البرنامج الثابت هذا على تنفيذ وهمي. |
| GET WiFi/BT status | يسترجع حالة راديو Wi-Fi وBluetooth. |
| GET Device Info/Model | يسترجع معلومات الجهاز والطراز. |
| GET Version | يسترجع إصدار الخدمة الخلفية. |
| GET Bluetooth Name | يسترجع اسم جهاز Bluetooth. |
| الأمر | ما الذي يفعله |
|---|---|
| SET SSID | يغيّر SSID الخاص بـ Wi-Fi المُهيأ. |
| SET PSK | يغيّر كلمة مرور Wi-Fi المُهيأة. |
| SET MAC Address | يغيّر إعدادات BSSID الخاصة بـ Wi-Fi أثناء التشغيل. |
| SET Country Code | يغيّر رمز البلد التنظيمي المُهيأ. |
| SET Country Code Ext | يتعامل مع إعدادات رمز البلد الموسّعة. |
| SET Channel | يغيّر قناة Wi-Fi ويؤدي إلى إعادة تشغيل نقطة الوصول. |
تُصنَّف هذه العمليات على أنها danger في POC، وبالتالي تتطلب تأكيدًا صريحًا قبل إرسالها.
| الأمر | ما الذي يفعله |
|---|---|
| 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 كلا العمليتين على أنهما خطيرتان لأنهما تعدّلان الإعدادات الدائمة.