🇰🇷 한글 설명
DJI CrystalSky ZS600C 펌웨어 v0.3.9.7부터 v0.6.6.9까지의 Android 기반 'assistant' 데몬(root 권한)에 문서화되지 않은 숨겨진 기능(백도어)이 존재합니다. 물리적으로 USB에 접근할 수 있는 공격자가 USB 가젯 시리얼 인터페이스(/dev/ttyGS0)에 하드코딩된 매직 문자열 'dji26656677'을 전송하면, 이후 입력되는 각 줄이 system()으로 전달되어 root 권한으로 임의의 OS 명령을 실행할 수 있습니다.
💡 쉬운 설명
이 기기에는 개발자만 알아야 할 숨겨진 비밀 명령 통로가 있습니다. USB로 기기에 직접 연결한 사람이 정해진 비밀 문자열을 입력하면 기기 전체를 완전히 장악할 수 있습니다.
🇺🇸 원문 (English)
Hidden functionality (undocumented backdoor) in the root-privileged 'assistant' daemon in DJI CrystalSky ZS600C firmware v0.3.9.7 through v0.6.6.9 on Android allows a physically-present attacker with USB access to execute arbitrary OS commands as root by sending the hard-coded magic string 'dji26656677' to the USB-gadget serial interface (/dev/ttyGS0), after which each subsequent line is passed to system().
📍 영향받는 시스템
DJI CrystalSky ZS600C, 펌웨어 v0.3.9.7 ~ v0.6.6.9 (Android 기반)
⚔️ 공격 벡터
물리적 USB 접근 후 /dev/ttyGS0에 매직 문자열 'dji26656677'을 보내고 이어서 OS 명령을 입력하여 root 권한 실행
🛡️ 대응 방법
DJI가 제공하는 최신 펌웨어(v0.6.6.9 초과)로 즉시 업데이트하고, 업데이트 전까지 USB 포트를 물리적으로 보호하며 신뢰할 수 없는 USB 연결을 차단
🔧 검증 코드
출력된 펌웨어 빌드 값이 v0.3.9.7~v0.6.6.9 범위에 속하면 취약할 가능성이 높으며, /dev/ttyGS0 존재 여부로 USB 가젯 시리얼 인터페이스 노출 여부를 확인할 수 있습니다.
getprop ro.build.version.incremental 2>/dev/null; ls -l /dev/ttyGS0 2>/dev/null