В ходе независимого исследования безопасности мне удалось выявить и детально проанализировать две серьезные цепочки атак на гуманоидного робота Unitree G1. Обе позволяют получить полный контроль над устройством, причем одна из них работает дистанционно, в пределах действия Bluetooth-сигнала. Производитель уже подтвердил наличие проблем и выпустил соответствующие обновления безопасности.

Уязвимость UniBLEed: обход аутентификации

Первая и наиболее критичная находка, которую я назвал UniBLEed, заключается в возможности подключения к роботу по Bluetooth без какого-либо подтверждения или пароля. При запросе устройство отправляет зашифрованный служебный блок — RSA-обернутую связку, содержащую AES-128-ключ, серийный номер и Bluetooth-адрес. По замыслу архитекторов, расшифровать эти данные могла только облачная инфраструктура Unitree.

Однако мой анализ показал фундаментальный изъян: сервис принимает этот блок и возвращает расшифрованные данные любому зарегистрированному пользователю, не проверяя, является ли он владельцем конкретного робота. Это классический пример ошибки, когда аутентификация есть, а авторизации — нет. Серийный номер G1 легко извлекается из Bluetooth-рекламы, которую устройство транслирует в открытом виде, либо через отдельный незашифрованный запрос. Таким образом, злоумышленник с бесплатным аккаунтом Unitree может восстановить ключ конкретного робота и получить полный доступ к его зашифрованному каналу, включая команды настройки Wi-Fi.

Эскалация и вторая цепочка атак

Дальнейшее развитие атаки связано со скриптом wpa_connect.sh. Если передать ему пароль Wi-Fi длиной 121 байт, робот переходит в небезопасный ручной режим обработки сетевых настроек. В этом режиме данные попадают в конфигурацию wpa_supplicant без какой-либо фильтрации и экранирования. На практике это позволяет подменить параметры сети так, чтобы G1 подключился к хотспоту атакующего, принудительно переводя робота в контролируемую злоумышленником сеть.

После этого срабатывает вторая цепочка (CVE-2026-76639). Сервис разговорного ИИ chat_go позволяет мобильному приложению отправлять текстовые заметки для внутренней базы знаний. Вместо обычной заметки можно через подмену пути записать произвольный файл в каталог другого сервиса. После перезапуска он видит подброшенный файл и добавляет его в разрешенный список, открывая путь для дальнейших манипуляций.

Отдельно стоит рассмотреть альтернативный вектор (CVE-2026-76640), начинающийся с переполнения буфера в самом Bluetooth-сервере. Отправив «лишние» 1050 байт, я перезаписал соседние структуры в памяти, заставил главный цикл обработки событий завершиться и подставил ложную запись очистки. В результате процесс вызывает системную команду с правами root. Стоит подчеркнуть, что цепочка сквозная: после компрометации одного G1, он может использовать тот же сценарий для атаки на других роботов в зоне действия Bluetooth. Я воспроизвел уязвимости на разных экземплярах G1, подтвердив их стабильность.

За проделанную работу я получил вознаграждение в размере $5000.

Мой комментарий: Найденные проблемы — яркий пример того, как гонка за функциональностью в потребительской робототехнике опережает безопасность. Особенно тревожит возможность горизонтального распространения атаки между роботами. Индустрии пора пересмотреть подход к моделированию угроз для физических устройств, где последствия взлома выходят далеко за рамки утечки данных.