CPATH-2026-0026 · Robotics / humanoid

Undocumented CloudSail remote-access backdoor

At a glance

What this record establishes

Affected product
UnitreeUnitree Go1 CloudSail undocumented remote-access backdoor (CVE-2025-2894)Quadruped robot
  • Unitree Go1 firmware 2022_05_11_e0d0e617
Root cause
Go1 starts an undocumented CloudSail client at boot, creating an outbound remote-access tunnel whose fleet-shared API authority could address registered robots through NAT and firewalls.
Reachable consequence
  • Remote motion control of a walking quadruped can create a collision or bystander hazard, especially in security-sensitive deployments.
  • One shared API key was reported to enumerate and control 1,919 registered robots through a hidden remote service.
Remediation
Disable CSClientDaemon and remove the tunnel client, rotate onboard SSH credentials, isolate robot networks, and block CloudSail egress. Revocation of the disclosed shared key is not a firmware fix.
Evidence status
  • Observed in the field or reproducedNVD documents the condition.
Baseline confidence: High

Vulnerability record

Bug mechanics, affected systems, and remediation

The editorial record appears before the modeled consequence so the Path Score remains traceable to the documented vulnerability.

1. Summary

Every Unitree Go1 quadruped robot ships with CloudSail, a third-party peer-to-peer NAT-traversing tunnel client (from China-based Oray/Zhexi Technology) that is pre-installed and auto-starts on boot on the robot’s onboard Raspberry Pi without the owner’s knowledge [1][4][5]. A single manufacturer-controlled CloudSail API key acts as the trust anchor for the entire registered fleet: any holder of that key can enumerate every registered device and open a tunnel to any of them [4][5]. Through that tunnel an attacker gains full remote control of the robot — issuing motion commands, viewing onboard cameras, and pivoting into the host LAN — with SSH access to the Pi available via default credentials pi/123 and a no-authentication web interface as additional footholds [4][6]. The flaw is classified CWE-912 (Hidden Functionality) and scored CVSS v3.1 6.6 MEDIUM [1][3].

2. Affected products & versions

product models affected versions fixed version
Unitree Go1 quadruped robot Go1 (all variants reportedly shipped with CloudSail pre-installed) firmware 2022_05_11_e0d0e617 confirmed; GHSA lists affected versions as Unknown no numbered fixed firmware documented; vendor revoked the exploited CloudSail API key ~2025-03-23 [3][4]
Unitree Go2+ (successor) Go2 and later not documented architecture reported to have changed; not documented in public advisories

3. The vulnerability in detail

The defect lives not in the robot’s application logic but in what the robot silently does the moment it powers on and reaches the internet. Inside every Go1 is a Raspberry Pi acting as the high-level compute board. On that Pi, under /usr/local/zhexi/cloudsail/, sits csclient, a client for the CloudSail service operated by the China-based company Oray / Zhexi Technology [4][5]. CloudSail is a commercial peer-to-peer, NAT-traversing tunnel product — conceptually similar to a reverse-tunnel or remote-access relay. On the Go1 it is wired into systemd as the CSClientDaemon unit and launches automatically on boot in both mode daemon and mode worker, opening a persistent outbound tunnel that dials home to unitree.com/CloudSail [4][5]. Because the connection is initiated outbound by the robot, standard perimeter defenses do not help: no inbound port needs to be open, and NAT or firewall filtering on the owner’s network does not prevent the robot from being reachable through the relay [1][5][6]. This is the core of the danger — the device makes itself reachable to the CloudSail control plane regardless of how the owner has secured their network.

The root cause is best understood as two compounding problems. First is the hidden functionality itself (CWE-912): the tunnel ships pre-installed, active, and undocumented, so an owner has no reason to know their robot maintains a live channel to a Chinese cloud service [4][5]. CWE-912 describes exactly this class of defect — functionality present in a shipped product that is not documented or expected by the user and that provides a capability (here, remote reachability and control) which subverts the user’s security assumptions. Second, and what turns “phones home” into “fully controllable by a stranger,” is the trust model: the entire fleet is keyed on a single shared manufacturer-controlled CloudSail API key [4][5]. That key is the universal trust anchor. Anyone who recovers it can query the CloudSail API to enumerate every registered device and its address, then request a tunnel to any chosen robot [4][5]. There is no per-device secret, no owner-scoped credential, and no user consent gating this access.

Once a tunnel to a target is open, the attacker’s capabilities are broad. They can send motion/locomotion commands to a ~12 kg walking machine, stream the onboard cameras, and use the robot as a pivot into whatever LAN it sits on [4][5][6]. Two further footholds deepen persistence and access: the onboard Pi accepts SSH with the default credentials pi/123, and there is a web interface exposed with no authentication [4][6]. So the same tunnel that grants control also yields a root-adjacent shell on a general-purpose Linux host inside the victim network.

The exploitation chain is linear and requires no physical proximity, no RF adjacency, and no inbound reachability [1][4]. (1) The Go1 boots with internet access and csclient auto-starts. (2) csclient opens the outbound P2P NAT-traversing tunnel to unitree.com/CloudSail. (3) The attacker obtains the shared CloudSail API key. (4) Using the key, they enumerate every registered device and IP through the CloudSail API — researchers observed 1,919 units historically connected [5][6]. (5) They open a tunnel to a chosen target. (6) They issue motion commands, view cameras, and pivot into the host LAN. (7) Optionally they SSH into the Pi with pi/123 or hit the no-auth web UI [4][6]. The only preconditions are a valid shared key, a target powered on with internet, and the affected firmware [4]. This maps to the NVD vector AV:N/AC:H/PR:H: network attack vector, but with “high privileges” reflecting that possession of the shared key is required, and “high complexity” reflecting the need to obtain/use that key rather than a trivially guessable input.

Proof-of-concept status: demonstrated. Researchers Andreas Makris and Kevin Finisterre recovered a shared key and showed live control and enumeration, documenting the full mechanism — a reproducible technique rather than released offensive tooling [4][5]. Telemetry showed 1,919 devices connected over time with roughly two active at the time of study, and the vendor subsequently revoked the exploited key [4][5].

4. Discovery & timeline

The backdoor was discovered by Andreas Makris (Bin4ry) and Kevin Finisterre (d0tslash) of Austin Hackers Anonymous (AHA!); Takeonme.org is the assigning CNA [4]. Timeline [4]:

  • 2023-12-02 — initial vendor report to Unitree.
  • 2025-03-21 — public disclosure by the researchers.
  • 2025-03-23 — Unitree silently patched and revoked the exploited CloudSail API key.
  • 2025-03-27 — official CVE disclosure (CVE-2025-2894).
  • ~2025-04-01 — public reporting of the vulnerability as a supply-chain / national-security concern [5][6][7].

The vendor response was a silent fix: the key was revoked with no numbered fixed-firmware advisory, and the researchers noted the patch was applied quietly rather than accompanied by a coordinated bulletin [4].

5. Technical reference

  • CVE: CVE-2025-2894 [1][2].
  • CWE: CWE-912 (Hidden Functionality) [1][2][3].
  • CVSS v3.1: 6.6 MEDIUM, vector AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H, assigned by the Takeonme CNA [1][3]. Reading the vector for this bug: AV:N — reachable over the network via the CloudSail relay; AC:H — attacker must obtain and use the shared key; PR:H — that key functions as a high-privilege credential; UI:N — no owner interaction needed; S:U — scope unchanged in CVSS terms (notably, CVSS does not capture the LAN pivot or fleet-wide reach here); C:H/I:H/A:H — full confidentiality (cameras, LAN), integrity (motion commands, SSH), and availability impact. A researcher writeup showed 6.1, but NVD and GHSA both give 6.6 with an identical vector; 6.6 is authoritative [1][3].
  • Code / paths: csclient under /usr/local/zhexi/cloudsail/, systemd unit CSClientDaemon, tunnel directory on the Pi; SSH pi/123; no-auth web UI; cloud API endpoint under unitree.com/CloudSail [4]. No commit hash (silent key revocation, not a code-diff fix).

6. Consequence & CFSE path analysis

Real-world consequence. A party holding one shared key could remotely walk, watch through, and network-pivot from any registered Go1 on the internet — a ~12 kg locomoting machine that in some deployments operates in prison, police, and military contexts, and in others sits on academic and corporate networks (MIT, Princeton, CMU, Waterloo among the 1,919 connected units) [5][6]. That spans physical-safety risk (dangerous actuation near bystanders), fleet-scale takeover keyed on a single trust anchor, and fleet-wide live camera/sensor surveillance with espionage implications.

Why the CFSE Path Score diverges from CVSS. CVSS lands this at 6.6 MEDIUM, largely because AC:H/PR:H (needing the key) discount the base and S:U ignores the two dimensions that actually matter here: that one shared key reaches the entire fleet, and that the outbound relay defeats perimeter defense entirely. CFSE decomposes the single CVE into distinct risk paths and scores each on real consequence and reachability, which is why the overall verdict rises to EMERGENCY.

CFSE verdict — EMERGENCY:

This analysis decomposes CVE-2025-2894 into three risk paths and assesses the record at EMERGENCY overall. Two co-dominant paths reach EMERGENCY: DEVICE_CONTROL_SAFETY (remote motion/locomotion commands plus SSH root on the onboard Raspberry Pi over the outbound CloudSail tunnel, creating dangerous-actuation/bystander-injury risk for a ~12kg walking quadruped, amplified by prison/police/military deployments) and FLEET_CONTROL_PLANE (a single shared CloudSail API key was reported to enumerate and control every registered robot — 1,919 devices — via a hidden cloud control plane keyed on one shared trust anchor). A third supporting path, PERCEPTION_PRIVACY, is banded CRITICAL (privacy-only cap): the same key enables fleet-wide live camera/sensor surveillance, raised as an espionage/national-security concern given academic and corporate networks (MIT, Princeton, CMU, Waterloo) among the connected units. All paths share RE:4 (robots auto-dial outbound to unitree.com CloudSail, bypassing NAT/firewall so reachable regardless of inbound filtering), EC:3 (reproducible once the shared key is held), fleet-wide recovery burden (OR:4), field confirmation (EV:4), and liveness MITIGATED (Unitree invalidated the exploited key and Go2+ changed architecture; the service can be disabled). Bands are uplifted from a CRITICAL base to EMERGENCY on the two dominant paths because one shared key reaches many registered robots and remediation requires coordinated fleet-wide firmware/service removal plus egress filtering.

7. Remediation & mitigations

Grounded in the disclosure and public guidance for this specific bug [4][6]:

  • Disable the CloudSail tunnel on each Go1: systemctl disable CSClientDaemon and move the tunnel directory out of place (e.g., rename /usr/local/zhexi/cloudsail/ or move it to /root/tunnel_disabled) so the daemon cannot auto-start on boot [4][6].
  • Network-isolate the robots from critical/sensitive networks so a compromised unit cannot pivot into corporate, academic, or operational LANs [6].
  • Rotate the onboard SSH credentials — change the default pi/123 on the Raspberry Pi [4][6].
  • Egress filtering — block/monitor outbound connections to CloudSail / unitree.com relay endpoints so the tunnel cannot re-establish; audit firewall and DNS logs for CloudSail connections as a detection signal [6].
  • Vendor action already taken: Unitree revoked the exploited shared CloudSail API key ~2025-03-23, invalidating that specific key; note this is a mitigation of the disclosed key, not a documented firmware fix, so local disabling remains prudent [4].

8. Sources

[1] NVD - CVE-2025-2894 — NVD (NIST) — https://nvd.nist.gov/vuln/detail/CVE-2025-2894 — authoritative CWE-912 classification, CVSS 6.6 vector, and affected-product/firmware; primary-advisory. [2] CVE Record: CVE-2025-2894 — MITRE / CVE.org (Takeonme CNA) — https://www.cve.org/CVERecord?id=CVE-2025-2894 — canonical CNA record confirming CVE ID, product description, and CWE-912; primary-advisory. [3] GHSA-23cv-w96c-877f — GitHub Advisory Database — https://github.com/advisories/GHSA-23cv-w96c-877f — independent mirror confirming CVSS 6.6 Moderate and CWE-912 for cross-verification (affected/patched versions Unknown); primary-advisory. [4] CVE-2025-2894 — AHA! researcher writeup — Takeonme.org (Finisterre / Makris) — https://takeonme.org/cves/cve-2025-2894/ — original disclosure: CloudSail P2P tunnel, csclient/CSClientDaemon auto-start, recovered shared key, pi/123, no-auth web UI, remediation, timeline, key revocation; researcher-primary. [5] Undocumented Remote Access Backdoor Found in Unitree Go1 Robot Dog — SecurityWeek — https://www.securityweek.com/undocumented-remote-access-backdoor-found-in-unitree-go1-robot-dog/ — attacker capabilities, shared-key mechanism, unitree.com ping, 1,919 devices (~2 active), pre-installed/active without notice; reputable-press. [6] Remote Access Backdoor Discovered in Chinese Robot Dog Unitree Go1 — CyberInsider — https://cyberinsider.com/remote-access-backdoor-discovered-in-chinese-robot-dog-unitree-go1/ — confirms 1,919 units and affected institutions (MIT, Princeton, CMU, Waterloo), boot-integrated tunnel, no-auth UI/SSH default creds, isolation/rotation/disable/audit remediation; reputable-press. [7] Chinese robotics manufacturer left backdoor in product — Axios — https://www.axios.com/2025/04/01/threat-spotlight-backdoor-in-chinese-robots-future-of-cybersecurity — mainstream national-security / supply-chain framing; used for context only; reputable-press.

Causal model

How the exploit reaches this consequence

3 modeled paths · each transition states what supports it.

Safety · Co-dominant path

Device-control safety

Remote motion control of a walking quadruped can create a collision or bystander hazard, especially in security-sensitive deployments.

EMERGENCY
  1. accessSource-backed

    Network-reachable without prior access

    The undocumented remote service is reachable through the vendor cloud path when the shared API authority is available.

    Evidence NVD

  2. boundaryModel inference

    Cross-domain authority chain

    Crosses cloud-to-physical-actuation boundary.

    Evidence Derived from the cited facts.

  3. capabilityModel inference

    Severe therapy or actuation consequence

    Remote motion control of a walking quadruped can create a collision or bystander hazard, especially in security-sensitive deployments.

    Evidence Derived from the cited facts.

  4. consequenceModel inference

    Device-control safety

    Remote motion control of a walking quadruped can create a collision or bystander hazard, especially in security-sensitive deployments.

    Evidence Derived from the cited facts.

  5. recoveryOperational assumption

    Fleet action or replacement

    Removal requires firmware and service change fleet-wide (fleet-wide recovery is required).

    Evidence Required deployment or recovery condition.

Decision trail

How the final band follows

  1. Base bandCRITICAL
  2. Systemic uplift

    The CRITICAL base band rises to EMERGENCY because the shared remote service and API key can reach many registered robots, and remediation must revoke that fleet-wide authority.

  3. Final bandEMERGENCY
Inspect every metric judgment

Decision rationale

How this band was reached

Reach and effort
ReachabilityRE 4
Network-reachable without prior access

The undocumented remote service is reachable through the vendor cloud path when the shared API authority is available.

Source-backedNVD
Execution complexityEC 3
Reproducible exploit workflow

With the shared CloudSail key, the demonstrated service workflow provides repeatable remote shell and motion commands through the robot's outbound tunnel.

Source-backedNVD
ExposureEX 3
Execution effort limits exposure

The interface is broadly reachable, but the required technique keeps practical exposure below that reach.

Model inference
Consequence
Physical / safetyPH 4
Severe therapy or actuation consequence

Remote motion control of a walking quadruped can create a collision or bystander hazard, especially in security-sensitive deployments.

Model inference
Data / perceptionDP 3
Sensitive device or personal data

Remote root exposes the robot's sensor, configuration, and operational state alongside its motion controls.

Model inference
AuthorityAT 3
Administrative or command authority

The service provides remote motion commands and SSH root on the onboard host; it does not expose a vendor firmware-signing key.

Model inference
Scale and recovery
ChainabilityCH 4
Cross-domain authority chain

Crosses cloud-to-physical-actuation boundary.

Model inference
Reuse scaleSR 4
Shared fleet-wide primitive

The same shared CloudSail credential and service workflow can be reused to send motion commands to registered robots.

Operational assumption
Execution scaleSX 4
Remote fleet-scale execution

The shared service path can address registered robots over their outbound tunnels without placing an attacker beside each device.

Operational assumption
Recovery burdenOR 4
Fleet action or replacement

Removal requires firmware and service change fleet-wide (fleet-wide recovery is required).

Operational assumption
Confidence and status
Evidence strengthEV 4
Observed in the field or reproduced

NVD documents the condition.

Source-backedNVD
LivenessLS Mitigated
Vendor mitigation is recorded

The cited mitigation addresses the documented mechanism.

Source-backedNVD
Technical vector
Compact machine notationCPATH:1.0/TT:DEVICE_CONTROL_SAFETY/RE:4/EC:3/EX:3/PH:4/DP:3/AT:3/CH:4/SR:4/SX:4/OR:4/EV:4/LS:MITIGATEDRead the scoring method →

Systemic · Co-dominant path

Fleet control plane

One shared API key was reported to enumerate and control 1,919 registered robots through a hidden remote service.

EMERGENCY
  1. accessSource-backed

    Network-reachable without prior access

    Robots auto-dial outbound to unitree.com CloudSail, bypassing NAT and firewall, so reachable from internet regardless of inbound filtering.

    Evidence NVD

  2. boundaryModel inference

    Cross-domain authority chain

    Crosses cloud and device and physical boundaries.

    Evidence Derived from the cited facts.

  3. capabilityModel inference

    Firmware or trust-root authority

    One shared API key was reported to enumerate and control 1,919 registered robots through a hidden remote service.

    Evidence Derived from the cited facts.

  4. consequenceModel inference

    Fleet control plane

    One shared API key was reported to enumerate and control 1,919 registered robots through a hidden remote service.

    Evidence Derived from the cited facts.

  5. recoveryOperational assumption

    Fleet action or replacement

    Recovery requires removing the hidden CloudSail functionality across the fleet plus egress filtering and firmware change (fleet-wide recovery is required).

    Evidence Required deployment or recovery condition.

Decision trail

How the final band follows

  1. Base bandCRITICAL
  2. Systemic uplift

    The CRITICAL base band rises to EMERGENCY because one shared API key reaches the remote control plane of many registered robots and requires coordinated fleet remediation.

  3. Final bandEMERGENCY
Inspect every metric judgment

Decision rationale

How this band was reached

Reach and effort
ReachabilityRE 4
Network-reachable without prior access

Robots auto-dial outbound to unitree.com CloudSail, bypassing NAT and firewall, so reachable from internet regardless of inbound filtering.

Source-backedNVD
Execution complexityEC 3
Reproducible exploit workflow

The manufacturer inherently holds it and Makris and Finisterre demonstrated live control (standard workflow, gated only by key possession).

Source-backedNVD
ExposureEX 3
Execution effort limits exposure

The interface is broadly reachable, but the required technique keeps practical exposure below that reach.

Model inference
Consequence
Physical / safetyPH 4
Severe therapy or actuation consequence

Coordinated remote motion or shutdown across many mobile robots can reduce safety margins across the deployment; observed injury is not asserted.

Model inference
Data / perceptionDP 3
Sensitive device or personal data

The shared control plane exposes fleet inventory, robot status, sensor access, and command state across registered devices.

Model inference
AuthorityAT 4
Firmware or trust-root authority

One shared API key was reported to enumerate and control 1,919 registered robots through a hidden remote service.

Model inference
Scale and recovery
ChainabilityCH 4
Cross-domain authority chain

Crosses cloud and device and physical boundaries.

Model inference
Reuse scaleSR 4
Shared fleet-wide primitive

One shared API key and hidden service workflow apply across the registered robot population.

Operational assumption
Execution scaleSX 4
Remote fleet-scale execution

The hidden cloud service can address registered robots through their outbound tunnels without per-device physical access.

Operational assumption
Recovery burdenOR 4
Fleet action or replacement

Recovery requires removing the hidden CloudSail functionality across the fleet plus egress filtering and firmware change (fleet-wide recovery is required).

Operational assumption
Confidence and status
Evidence strengthEV 4
Observed in the field or reproduced

NVD documents the condition.

Source-backedNVD
LivenessLS Mitigated
Vendor mitigation is recorded

The cited mitigation addresses the documented mechanism.

Source-backedNVD
Technical vector
Compact machine notationCPATH:1.0/TT:FLEET_CONTROL_PLANE/RE:4/EC:3/EX:3/PH:4/DP:3/AT:4/CH:4/SR:4/SX:4/OR:4/EV:4/LS:MITIGATEDRead the scoring method →

Privacy · Supporting path

Perception privacy

The shared service can expose live camera feeds and sensor state from registered robots, enabling remote observation of their surroundings.

CRITICAL
  1. accessSource-backed

    Network-reachable without prior access

    The undocumented remote service is reachable through the vendor cloud path when the shared API authority is available.

    Evidence NVD

  2. boundaryModel inference

    Reusable multi-stage bridge

    Crosses cloud and device and physical-observation boundary.

    Evidence Derived from the cited facts.

  3. capabilityModel inference

    Safety-driving perception or intimate data

    The shared service can expose live camera feeds and sensor state from registered robots, enabling remote observation of their surroundings.

    Evidence Derived from the cited facts.

  4. consequenceModel inference

    Perception privacy

    The shared service can expose live camera feeds and sensor state from registered robots, enabling remote observation of their surroundings.

    Evidence Derived from the cited facts.

  5. recoveryOperational assumption

    Fleet action or replacement

    Recovery requires fleet-wide service and firmware removal (fleet-wide recovery is required).

    Evidence Required deployment or recovery condition.

Decision trail

How the final band follows

  1. Base bandCRITICAL
  2. No adjustment

    The CRITICAL base band remains final because no separate cap or systemic uplift applies. The shared service can expose live camera feeds and sensor state from registered robots, enabling remote observation of their surroundings.

  3. Final bandCRITICAL
Inspect every metric judgment

Decision rationale

How this band was reached

Reach and effort
ReachabilityRE 4
Network-reachable without prior access

The undocumented remote service is reachable through the vendor cloud path when the shared API authority is available.

Source-backedNVD
Execution complexityEC 3
Reproducible exploit workflow

Possession of the shared CloudSail key gives the demonstrated service access to live cameras and sensors through the existing outbound tunnel.

Source-backedNVD
ExposureEX 3
Execution effort limits exposure

The interface is broadly reachable, but the required technique keeps practical exposure below that reach.

Model inference
Consequence
Physical / safetyPH 2
Operational safety effect

Surveillance itself is an information and privacy disruption, not direct actuation harm.

Model inference
Data / perceptionDP 4
Safety-driving perception or intimate data

The shared service can expose live camera feeds and sensor state from registered robots, enabling remote observation of their surroundings.

Model inference
AuthorityAT 3
Administrative or command authority

Sensor and camera access via service authority.

Model inference
Scale and recovery
ChainabilityCH 3
Reusable multi-stage bridge

Crosses cloud and device and physical-observation boundary.

Model inference
Reuse scaleSR 4
Shared fleet-wide primitive

Shared single key gives fleet-wide remote camera access .

Operational assumption
Execution scaleSX 4
Remote fleet-scale execution

The same service credential can request sensor access from registered robots remotely rather than requiring per-robot physical proximity.

Operational assumption
Recovery burdenOR 4
Fleet action or replacement

Recovery requires fleet-wide service and firmware removal (fleet-wide recovery is required).

Operational assumption
Confidence and status
Evidence strengthEV 4
Observed in the field or reproduced

NVD documents the condition.

Source-backedNVD
LivenessLS Mitigated
Vendor mitigation is recorded

The cited mitigation addresses the documented mechanism.

Source-backedNVD
Technical vector
Compact machine notationCPATH:1.0/TT:PERCEPTION_PRIVACY/RE:4/EC:3/EX:3/PH:2/DP:4/AT:3/CH:3/SR:4/SX:4/OR:4/EV:4/LS:MITIGATEDRead the scoring method →

Triage implication

Prioritize the safety transition.

Triage beyond the first device by mapping the reusable condition, propagation mechanism, and recovery dependency across the deployment.

Evidence ledger

Public sources used by this record.

Published baseline

Why this band differs from CVSS

RelationshipPaths model is higher
Baseline confidencehigh
Scored2026-06-03
v3.1 · 6.6 MEDIUMTakeonme CNA via NVD
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H

Related paths

Compare trust boundaries across products.

Cite this entryCFSE Consequence Paths Registry 1.0, CPATH-2026-0026 (“Undocumented CloudSail remote-access backdoor”), paths.cfse.ai/CPATH-2026-0026 (published 2026-06-03).