T03 · Remote Payload Retrieval and Execution
Error
- Location
- references/security.md:497
- Finding
- Mutable Remote Installer Executed Directly Through a Shell<![CDATA[ ## Vulnerability Details **File Location**: `references/security.md:497-500` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash # Tailscale: install on each robot, assigns 100.x.y.z addresses curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up --hostname=robot-001 # Use Tailscale IPs in CycloneDDS peer list ``` ### Technical Analysis The documentation pipes the response from a mutable external URL directly into `sh`. The downloaded content is not pinned to a version, saved for inspection, checked against an expected digest, or authenticated through a package-signing workflow. Although HTTPS protects the connection under normal conditions and the URL appears to be associated with the named vendor, the effective code executed by this instruction can change after the Skill has been reviewed. Compromise of the vendor domain, hosting infrastructure, TLS trust chain, or installer publication process would turn this command into an arbitrary code-execution channel. The installation operation is system-wide and is followed by a privileged `sudo tailscale up` command. Vendor installation scripts commonly require or invoke elevated operations to configure package repositories, install software, and register services. Consequently, this instruction can cross the least-privilege boundary of a documentation-only ROS 2 networking task. ### Attack Path 1. An attacker compromises the remote installer, its hosting infrastructure, or another trusted component in the delivery chain. 2. The attacker replaces or modifies the response served from `https://tailscale.com/install.sh`. 3. A user or AI agent follows the Skill's documented installation command on a robot. 4. `curl` streams the attacker-controlled response directly to `sh`, without an opportunity for local review. 5. The payload executes on the robot and may invoke privileged installation operations. 6. The payload can modify s ...[truncated 1037 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` pipeline. 2. Prefer the vendor's signed operating-system repository and package-manager installation procedure. 3. Pin an explicit repository, package version, or release rather than retrieving a mutable installer. 4. Verify the repository signing-key fingerprint through an independently authenticated source. 5. Require package signature verification before installation. 6. If a standalone installer is unavoidable: - Download it to a local file. - Pin an expected SHA-256 or stronger digest. - Verify the digest and any detached signature. - Inspect the script before execution. - Run it with the minimum privileges required. 7. Separate installation from activation so users can review the changes before running `sudo tailscale up`. 8. Document expected filesystem, service, firewall, and network changes. 9. For fleet deployment, distribute verified artifacts from an organization-controlled repository rather than downloading mutable scripts independently on every robot. ]]>
