CVE-2026-114357: DJI CrystalSky ZS600C ships ADB without authentication (ro.adb.secure=0)
Missing authentication for a critical function in the Android Debug Bridge daemon (adbd) in DJI CrystalSky ZS600C firmware v0.3.9.7 through v0.6.6.9 allows an attacker to obtain an unauthenticated shell (uid 2000), a foothold for privilege escalation to root. The device ships with ro.adb.secure=0 (no host key authorization) and USB ADB enabled by default; ADB over TCP is not enabled by default but, once enabled (e.g. via the shipped /system/bin/adbdtcp.sh or 'setprop persist.adb.tcp.port 5555'), the same unauthenticated shell is reachable over the network (CVSS 4.0 base 9.3).
Affected Software
Event History
Frequently Asked Questions
Which deployments are exposed by default?
DJI CrystalSky ZS600C devices running firmware v0.3.9.7 through v0.6.6.9 are exposed through USB because USB ADB is enabled by default and host-key authentication is disabled.
What does an attacker need to obtain access?
For the default USB exposure, an attacker needs access to the device's USB ADB interface. Network access alone is insufficient by default because ADB over TCP is not enabled unless it has been explicitly enabled, such as through /system/bin/adbd_tcp.sh or by setting persist.adb.tcp.port to 5555.
What access does successful exploitation provide?
An attacker can obtain an unauthenticated ADB shell running as uid 2000. This provides a foothold that may be used for privilege escalation to root.
How can I determine whether network exposure has been enabled?
Check whether ADB over TCP has been enabled, including whether /system/bin/adbd_tcp.sh has been used or persist.adb.tcp.port is set to 5555. If it is enabled, the unauthenticated ADB shell is reachable over the network.