T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:93
- Finding
- Unverified Remote Installer Executed Through a Shell Pipeline<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 93-96 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```markdown ## Requirements - `clawhub` CLI — `npm i -g clawhub` - `uv` — `curl -LsSf https://astral.sh/uv/install.sh | sh` ``` A matching command is also presented in the dependency error message at `scripts/safe-install.sh:86`: ```bash print_error "uvx not found. Install uv with: curl -LsSf https://astral.sh/uv/install.sh | sh" ``` The shell script only prints this command; it does not execute it automatically. However, both locations encourage users to execute it. ### Technical Analysis The installation instructions pipe the response from an external HTTPS endpoint directly into `sh`. The downloaded content is neither pinned to a reviewed version nor checked against a trusted checksum or digital signature before execution. Consequently, the effective code executed by the user can change after this Skill has been audited. HTTPS protects transport confidentiality and integrity under normal conditions, but it does not protect against compromise of the publisher account, hosting infrastructure, release process, or an incorrectly trusted certificate authority. Using this mechanism is not necessary for the Skill's core function. A versioned package or separately downloaded and verified installer could provide the same dependency without immediate execution of mutable remote content. ### Attack Path 1. The user follows the documented requirements or the error message emitted by `safe-install.sh`. 2. The user runs `curl -LsSf https://astral.sh/uv/install.sh | sh`. 3. The remote endpoint, publishing process, or associated infrastructure serves modified installer content. 4. `curl` transfers that content directly to the shell without local inspection or integrity verification. 5. The malicious content executes with all privileges and data access available to the invoking user. ...[truncated 557 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace the pipeline with installation through a trusted package manager using an explicitly pinned version. 2. If a standalone installer is required, download it to a local file rather than piping it into a shell. 3. Publish and verify a cryptographic checksum or publisher signature before execution. 4. Display the verified script to the user or provide an opportunity for inspection before running it. 5. Pin the download to an immutable, version-specific artifact rather than a mutable generic installer URL. 6. Update the error message at `scripts/safe-install.sh:86` so that it does not recommend direct remote-to-shell execution. A safer conceptual process is: ```bash curl -fL -o uv-installer.sh "https://trusted.example/uv/<PINNED_VERSION>/install.sh" printf '%s %s\n' "<TRUSTED_SHA256>" "uv-installer.sh" | sha256sum -c - sh uv-installer.sh ``` The version and checksum must come from an independently authenticated source. ]]>
