CVE-2025-35027

7.3 HIGH

📋 TL;DR

This CVE describes a command injection vulnerability in Unitree robotic products that allows attackers to execute arbitrary commands as root by injecting malicious strings during WiFi configuration via BLE. Affected devices include Unitree Go2, G1, H1, and B2 robots running firmware derived from the MIT Cheetah codebase. The vulnerability is triggered when restarting the WiFi service after malicious configuration.

💻 Affected Systems

Products:
  • Unitree Go2
  • Unitree G1
  • Unitree H1
  • Unitree B2
Versions: All versions using vulnerable firmware derived from MIT Cheetah codebase
Operating Systems: Embedded Linux systems on Unitree robots
Default Config Vulnerable: ⚠️ Yes
Notes: All Unitree models sharing the common firmware codebase are affected. The vulnerability exists in the wpa_supplicant_restart.sh shell script.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the robotic system allowing root-level command execution, potential physical safety risks if robot control is hijacked, and lateral movement to connected networks.

🟠

Likely Case

Unauthorized access to robot systems, data exfiltration, disruption of robot operations, and potential installation of persistent backdoors.

🟢

If Mitigated

Limited impact if network segmentation, BLE access controls, and input validation are properly implemented.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires BLE proximity and ability to configure WiFi settings. Public proof-of-concept available in UniPwn repository.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Monitor Unitree security advisories for updates.

🔧 Temporary Workarounds

Disable BLE WiFi configuration

linux

Disable Bluetooth Low Energy WiFi configuration functionality to prevent exploitation vector

systemctl disable unitree-ble-wifi
systemctl stop unitree-ble-wifi

Implement input validation in wpa_supplicant_restart.sh

linux

Add input sanitization to prevent command injection in the vulnerable shell script

Edit /path/to/wpa_supplicant_restart.sh to sanitize all user inputs and use parameterized commands

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate robotic systems from critical networks
  • Enable BLE security controls and restrict physical access to robots

🔍 How to Verify

Check if Vulnerable:

Check if wpa_supplicant_restart.sh script exists and contains unsanitized user input in command execution

Check Version:

Check firmware version via robot's administrative interface or system logs

Verify Fix Applied:

Verify that wpa_supplicant_restart.sh script properly sanitizes inputs and uses secure command execution methods

📡 Detection & Monitoring

Log Indicators:

  • Unusual BLE connection attempts
  • WiFi service restarts with suspicious configuration parameters
  • Root command execution from wpa_supplicant processes

Network Indicators:

  • Unexpected outbound connections from robotic systems
  • BLE scanning activity near robots

SIEM Query:

source="robot_systems" AND (event="wpa_supplicant_restart" OR event="ble_config_change") AND command="*"

🔗 References

📤 Share & Export