CVE-2026-77812
Cleartext Exposure of DJI Drone Wi-Fi Credentials via BLE
Description
DJI drones transmit DUML (DJI Universal Markup Language) protocol messages over BLE (Bluetooth Low Energy) without encryption. When a client attempts to connect to the drone over Wi-Fi, or when the drone is switched to QuickTransfer mode, the DJI Fly application exchanges DUML messages with the drone over BLE, including the Wi-Fi credentials. An attacker within BLE range can passively sniff this traffic and recover the credentials in cleartext, including the drone's Wi-Fi PSK, SSID, and trusted identifier UUID. Obtaining these credentials allows the attacker to join the drone's internal Wi-Fi network, interact with network services exposed by the drone, and decrypt Wi-Fi traffic exchanged between the drone and the legitimate user. * An attacker within BLE range recovers the Wi-Fi SSID and PSK in cleartext, and can then join the drone's network * The same capture also exposes the session UUID identifier, which is the only thing the drone uses to tell a trusted client from an unknown one, so the attacker can replay it and skip the physical confirmation of new connected devices. * The credentials do not change between sessions unless the operator manually resets the Wi-Fi settings, so one capture stays valid indefinitely * The attack is fully passive, with nothing transmitted and no connection made, so neither the operator nor the drone has any indication the session was observed * A BLE sniffer and presence during one normal DJI Fly connection are needed Affected models are DJI Neo until 01.00.0400, DJI Neo 2 until 01.00.0500, DJI Flip until 01.00.1200, DJI Air 3 until 01.00.1600, DJI Air 3S until 01.00.1400, DJI Avata 2 until 01.00.0400, DJI Avata 360 until 01.00.0300, DJI Mavic 3 until 01.00.1400, DJI Mavic 3 Classic until 01.00.0800, DJI Mavic 3 Pro until 01.01.0700, DJI Mavic 4 Pro until 01.00.0500, DJI Mini 2 until 01.07.0200, DJI Mini 3 until 01.00.0500, DJI Mini 3 Pro until 01.00.0900, DJI Mini 4 Pro until 01.00.1100, and DJI Mini 5 Pro until 01.00.0600. Remediation requires a firmware update from the vendor. There is no user-side mitigation that fully addresses the vulnerability without upgrading.
INFO
Published Date :
Aug. 21, 2026, 3:16 p.m.
Last Modified :
Oct. 15, 2026, 7:10 p.m.
Remotely Exploit :
No
Source :
5a6e4751-2f3f-4070-9419-94fb35b644e8
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 4.0 | CRITICAL | 5a6e4751-2f3f-4070-9419-94fb35b644e8 | ||||
| CVSS 4.0 | CRITICAL | 5a6e4751-2f3f-4070-9419-94fb35b644e8 |
Solution
- Update drone firmware using the vendor's provided update mechanism.
- Apply available security patches for affected drone models.
- Monitor vendor announcements for critical security updates.
- Review and reset Wi-Fi settings after updating.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-77812.
| URL | Resource |
|---|---|
| https://github.com/Wh02m1/CVE-2026-77812 | |
| https://support.dji.com/help/content?customId=en-us03400011149&spaceId=34&re=US&lang=en |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-77812 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-77812
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-77812 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-77812 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Oct. 15, 2026
Action Type Old Value New Value Added Translation Title: DJI, Description: Los drones DJI transmiten mensajes del protocolo DUML (DJI Universal Markup Language) a través de BLE (Bluetooth Low Energy) sin cifrado. Cuando un cliente intenta conectarse al drone a través de Wi-Fi, o cuando el drone se cambia al modo QuickTransfer, la aplicación DJI Fly intercambia mensajes DUML con el drone a través de BLE, incluyendo las credenciales de Wi-Fi. Un atacante dentro del alcance de BLE puede esnifar pasivamente este tráfico y recuperar las credenciales en texto claro, incluyendo el PSK, SSID y el UUID de identificador de confianza del Wi-Fi del drone. La obtención de estas credenciales permite al atacante unirse a la red Wi-Fi interna del drone, interactuar con los servicios de red expuestos por el drone, y descifrar el tráfico Wi-Fi intercambiado entre el drone y el usuario legítimo. * Un atacante dentro del alcance de BLE recupera el SSID y el PSK del Wi-Fi en texto claro, y luego puede unirse a la red del drone. * La misma captura también expone el identificador UUID de la sesión, que es lo único que el drone utiliza para distinguir un cliente de confianza de uno desconocido, por lo que el atacante puede reproducirlo y omitir la confirmación física de nuevos dispositivos conectados. * Las credenciales no cambian entre sesiones a menos que el operador reinicie manualmente la configuración de Wi-Fi, por lo que una captura permanece válida indefinidamente. * El ataque es completamente pasivo, sin que se transmita nada y sin que se establezca ninguna conexión, por lo que ni el operador ni el drone tienen ninguna indicación de que la sesión fue observada. * Se necesita un sniffer de BLE y presencia durante una conexión normal de DJI Fly. Los modelos afectados son DJI Neo hasta 01.00.0400, DJI Neo 2 hasta 01.00.0500, DJI Flip hasta 01.00.1200, DJI Air 3 hasta 01.00.1600, DJI Air 3S hasta 01.00.1400, DJI Avata 2 hasta 01.00.0400, DJI Avata 360 hasta 01.00.0300, DJI Mavic 3 hasta 01.00.1400, DJI Mavic 3 Classic hasta 01.00.0800, DJI Mavic 3 Pro hasta 01.01.0700, DJI Mavic 4 Pro hasta 01.00.0500, DJI Mini 2 hasta 01.07.0200, DJI Mini 3 hasta 01.00.0500, DJI Mini 3 Pro hasta 01.00.0900, DJI Mini 4 Pro hasta 01.00.1100, y DJI Mini 5 Pro hasta 01.00.0600. La remediación requiere una actualización de firmware del proveedor. No existe una mitigación por parte del usuario que aborde completamente la vulnerabilidad sin actualizar. -
CVE Modified by 5a6e4751-2f3f-4070-9419-94fb35b644e8
Oct. 12, 2026
Action Type Old Value New Value Added Reference https://github.com/Wh02m1/CVE-2026-77812 Added Reference https://support.dji.com/help/content?customId=en-us03400011149&spaceId=34&re=US&lang=en Removed Reference https://support.dji.com/help/content?customId=en-us03400011149&spaceId=34&re=US&lang=en -
CVE Modified by 5a6e4751-2f3f-4070-9419-94fb35b644e8
Aug. 24, 2026
Action Type Old Value New Value Changed Affected [{'vendor': 'DJI', 'product': 'DJI Neo', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Neo 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Flip', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Air 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1600'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Air 3S', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Avata 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Avata 360', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0300'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3 Classic', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0800'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.01.0700'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.07.0200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0900'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1100'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 5 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0600'}], 'defaultStatus': 'unaffected'}] [{'vendor': 'DJI', 'product': 'Neo', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Neo 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Flip', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Air 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1600'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Air 3S', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Avata 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Avata 360', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0300'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mavic 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mavic 3 Classic', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0800'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mavic 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.01.0700'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mavic 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mini 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.07.0200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mini 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mini 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0900'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mini 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1100'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'Mini 5 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0600'}], 'defaultStatus': 'unaffected'}] -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Aug. 21, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-77812', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'total'}], 'version': '2.0.3', 'timestamp': '2026-08-21T17:42:02.404909Z'} -
New CVE Received by 5a6e4751-2f3f-4070-9419-94fb35b644e8
Aug. 21, 2026
Action Type Old Value New Value Added Affected [{'vendor': 'DJI', 'product': 'DJI Neo', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Neo 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Flip', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Air 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1600'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Air 3S', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Avata 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Avata 360', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0300'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1400'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3 Classic', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0800'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.01.0700'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mavic 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 2', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.07.0200'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 3', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0500'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 3 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0900'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 4 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.1100'}], 'defaultStatus': 'unaffected'}, {'vendor': 'DJI', 'product': 'DJI Mini 5 Pro', 'versions': [{'status': 'affected', 'version': '0', 'versionType': 'semver', 'lessThanOrEqual': '01.00.0600'}], 'defaultStatus': 'unaffected'}] Added Description DJI drones transmit DUML (DJI Universal Markup Language) protocol messages over BLE (Bluetooth Low Energy) without encryption. When a client attempts to connect to the drone over Wi-Fi, or when the drone is switched to QuickTransfer mode, the DJI Fly application exchanges DUML messages with the drone over BLE, including the Wi-Fi credentials. An attacker within BLE range can passively sniff this traffic and recover the credentials in cleartext, including the drone's Wi-Fi PSK, SSID, and trusted identifier UUID. Obtaining these credentials allows the attacker to join the drone's internal Wi-Fi network, interact with network services exposed by the drone, and decrypt Wi-Fi traffic exchanged between the drone and the legitimate user. * An attacker within BLE range recovers the Wi-Fi SSID and PSK in cleartext, and can then join the drone's network * The same capture also exposes the session UUID identifier, which is the only thing the drone uses to tell a trusted client from an unknown one, so the attacker can replay it and skip the physical confirmation of new connected devices. * The credentials do not change between sessions unless the operator manually resets the Wi-Fi settings, so one capture stays valid indefinitely * The attack is fully passive, with nothing transmitted and no connection made, so neither the operator nor the drone has any indication the session was observed * A BLE sniffer and presence during one normal DJI Fly connection are needed Affected models are DJI Neo until 01.00.0400, DJI Neo 2 until 01.00.0500, DJI Flip until 01.00.1200, DJI Air 3 until 01.00.1600, DJI Air 3S until 01.00.1400, DJI Avata 2 until 01.00.0400, DJI Avata 360 until 01.00.0300, DJI Mavic 3 until 01.00.1400, DJI Mavic 3 Classic until 01.00.0800, DJI Mavic 3 Pro until 01.01.0700, DJI Mavic 4 Pro until 01.00.0500, DJI Mini 2 until 01.07.0200, DJI Mini 3 until 01.00.0500, DJI Mini 3 Pro until 01.00.0900, DJI Mini 4 Pro until 01.00.1100, and DJI Mini 5 Pro until 01.00.0600. Remediation requires a firmware update from the vendor. There is no user-side mitigation that fully addresses the vulnerability without upgrading. Added CVSS V4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X Added CWE CWE-311 Added Reference https://support.dji.com/help/content?customId=en-us03400011149&spaceId=34&re=US&lang=en