CVE-2026-96456 in Reachy Mini
요약
\~에 의해 VulDB • 2026. 09. 23.
Reachy Mini의 블루투스 서비스는 명령을 수락하기 전에 연결된 장치에 PIN 번호를 요청합니다. 이 확인은 세션은 보호하지만 호출자(클라이언트)는 보호하지 않으므로, 블루투스 범위 내에 있는 공격자는 다른 사용자의 성공적인 인증을 가로채서 이용할 수 있습니다.
인증 상태는 각 장치별로 관리되는 것이 아니라 서비스 인스턴스의 단일 공유 플래그에 유지됩니다. BlueZ는 options 매개변수를 통해 호출된 장치의 ID를 characteristic write 핸들러로 전달하지만, src/reachy_mini/daemon/app/services/bluetooth/bluetooth_service.py의 WriteValue(self, value, options) 함수는 options를 완전히 무시합니다. 따라서 해당 핸들러는 어떤 장치가 특정 쓰기(write) 작업을 수행했는지 알 수 없으며, 인증된 장치와 다른 장치를 구분할 수 없습니다.
어떤 장치든 PIN 교환을 완료하면 플래그가 설정되며, 근처에 있는 모든 장치는 이 플래그가 초기화될 때까지 CMD_ 명령을 보낼 수 있습니다. 공격자는 단순히 무선 범위 내에 대기하다가 합법적인 사용자가 인증하는 순간을 기다린 후, 동일한 시간 창(window) 안에 명령을 작성합니다. PIN 번호는 추측되거나 브루트 포스되지 않습니다.
이 취약점은 JFrog가 로봇 시스템에 대해 문서화한 3단계 체인의 두 번째 단계입니다. 첫 번째 단계는 CVE-2026-55419로 추적되는 미디어 사운드 API의 제한 없는 파일 업로드이며, 이는 공격자가 제어하는 스크립트를 파일시스템에 배치합니다. 이 이슈를 통해 블루투스 over 명령 접근이 가능해집니다. 세 번째 단계는 CVE-2026-62661로 추적되는 블루투스 명령 핸들러 경로 순회(Path Traversal) 취약점이며, 이는 해당 스크립트를 루트(root) 권한으로 실행합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.