explaingit

a-bissell/unleash-lite

1PythonAudience · researcherComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Security research tool that roots a Unitree Go2 quadruped robot over its WebRTC data channel using a controller-button-triggered Python payload. Includes SSH enable, persistence, and firmware-key fetch modes.

Mindmap

mindmap
  root((unleash-lite))
    Inputs
      Robot IP on local network
      Paired game controller
      Unitree cloud key
    Outputs
      Root shell on robot
      Persistent SSH access
      Reverse shell
    Use Cases
      Right to repair access
      Security research
      Firmware modding
      CVE replication
    Tech Stack
      Python
      WebRTC
      AES
      numpy

Things people build with this

USE CASE 1

Get a root shell on your own Unitree Go2 for right to repair or custom firmware work.

USE CASE 2

Enable persistent SSH on a Go2 that survives reboots and Unitree firmware updates.

USE CASE 3

Reproduce disclosed CVEs against a Go2 in a lab for security research and writeups.

USE CASE 4

Bypass the newer programming_actuator keyword filter when developing custom robot behaviors.

Tech stack

PythonWebRTCAESnumpy

Getting it running

Difficulty · hard Time to first run · 1h+

Requires physical Unitree Go2, paired controller on the same LAN, and for newer firmware a Unitree cloud account that owns the robot.

MIT license, free to use, modify, and redistribute as long as the original copyright notice stays.

In plain English

UnLeash Lite is a security research tool for the Unitree Go2, a four-legged consumer robot. The README describes it as a WebRTC jailbreak: it gets root-level shell access on the robot by sending a small Python payload over the same WebRTC data channel that the official Unitree mobile app already uses. To run it you need to be on the same local network as the robot and have a physical game controller paired to it. The payload is tied to a controller button combination, and the robot executes it as root when you press that combination. The tool is published as a Python package. After installing it with pip, you run commands like ssh, ssh-persist, custom, or reverse-shell against the robot's IP address. The ssh mode turns on SSH and sets a root password so you can log in directly. The persist mode adds a guard service that keeps SSH alive across reboots and Unitree's own firmware updates. Custom mode runs any shell command as root, and reverse-shell connects back to an attacker-controlled IP. The README is clear about two firmware regimes. On firmware 1.1.14 and earlier, the WebRTC layer used a single shared AES key, so no extra setup is needed. On 1.1.15 and later, Unitree moved to a per-device key, and the tool ships a fetch-key command that pulls the device key from the Unitree cloud account that owns the robot. If you already have SSH access, you can also read the key off the robot directly. There are extra bypass modes named bypass-hosts, bypass-file, bypass-cron, and bypass-escalate. These work around a keyword blocklist that Unitree added to the programming_actuator API in newer firmware. They encode the Python payload as byte arrays and use a numpy file writer to slip past the filter. The README credits the public security research it builds on, including disclosed CVEs and prior work by named researchers, and states that the project is for security research, education, and right-to-repair use only. The code is MIT licensed.

Copy-paste prompts

Prompt 1
Install UnLeash-Lite with pip and run ssh-persist against my Go2 at 192.168.1.50 so I keep root access across reboots.
Prompt 2
Use fetch-key in UnLeash-Lite to pull the per device WebRTC key from my Unitree cloud account for a 1.1.15 firmware robot.
Prompt 3
Set up reverse-shell mode in UnLeash-Lite pointing at my laptop on the same LAN and explain what the payload does after the button combo fires.
Prompt 4
Walk me through the bypass-cron mode in UnLeash-Lite and show how the byte array plus numpy file trick slips past the keyword blocklist.
Prompt 5
Write a defensive guide for Unitree Go2 owners that summarizes the attack surface UnLeash-Lite exploits and how to block it on a home network.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.