Description
Unitree Go2 firmware versions V1.1.7 through V1.1.9 and V1.1.11 (EDU) do not implement DDS authentication or authorization for the Eclipse CycloneDDS topic rt/api/programming_actuator/request handled by actuator_manager.py. A network-adjacent, unauthenticated attacker can join DDS domain 0 and publish a crafted message (api_id=1002) containing arbitrary Python, which the robot writes to disk under /unitree/etc/programming/ and binds to a physical controller keybinding. When the keybinding is pressed, the code executes as root and the binding persists across reboots.
Problem types
CWE-306 Missing Authentication for Critical Function
Product status
1.1.7 (semver)
1.1.11 (EDU only) (semver)
Credits
Olivier Laflamme
Ruikai Peng
References
boschko.ca/unitree-go2-rce/
shop.unitree.com/products/unitree-go2
www.vulncheck.com/...dds-authentication-enables-adjacent-rce