T03 · Remote Payload Retrieval and Execution
Error
- Location
- SETUP.md:9
- Finding
- Remote Installer Is Downloaded and Executed Without Verification## Vulnerability Details **File Location**: `SETUP.md:7-10` and `SETUP.md:202-205` **Vulnerability Type**: Remote payload retrieval and immediate shell execution **Risk Level**: High ### Vulnerable Code ```bash - [uv](https://astral.sh/uv) — Python package runner (handles dependencies automatically) ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` ``` The same command is repeated in the troubleshooting instructions: ```markdown ### "uv: command not found" - Install uv: `curl -LsSf https://astral.sh/uv/install.sh | sh` - Then restart your shell or run `source ~/.bashrc` ``` ### Technical Analysis The instructions pipe an HTTPS response directly into a shell. The retrieved installer is mutable and is neither pinned to a reviewed release nor verified with a cryptographic checksum or signature before execution. Use of Astral's official domain reduces the likelihood of a malicious payload but does not eliminate the trust risk. Compromise of the distribution service, publishing infrastructure, DNS/TLS path, or installer itself would change the code executed by users without requiring any modification to this repository. This behavior is not strictly necessary. The project could direct users to a versioned release package and require integrity verification before execution. ### Attack Path 1. An attacker compromises or gains control over the installer hosting or publishing infrastructure, or otherwise alters the response served from `https://astral.sh/uv/install.sh`. 2. A user follows the project setup instructions. 3. `curl` retrieves the attacker-controlled response. 4. The pipe sends the response directly to `sh` without review or integrity validation. 5. The payload executes with the privileges of the invoking user. 6. The payload can access files available to that user, including OpenClaw configuration, X credentials, project files, and other user data. ### Impact Assessment Suc ...[truncated 392 chars]
- Remediation
- ## Remediation Suggestions - Remove all `curl | sh` instructions. - Direct users to a specific, versioned `uv` release rather than a mutable installer endpoint. - Require verification against a checksum published through an independent, authenticated release channel. - Prefer signed operating-system packages or official package-manager installation methods. - If a script-based installation remains necessary, split download and execution into separate steps: ```bash curl -fL -o uv-installer.sh https://example.invalid/versioned/uv-installer.sh echo "EXPECTED_SHA256 uv-installer.sh" | sha256sum --check - less uv-installer.sh sh uv-installer.sh ``` - Pin the URL to an immutable release artifact and document how users can verify its signature.
