T03 · Remote Payload Retrieval and Execution
Error
- Location
- USAGE.md:12
- Finding
- Unverified Remote Installer Executed Directly by a Shell<![CDATA[ ## Vulnerability Details **File Location**: `USAGE.md:12-20` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash ### Method 2: Use uv (recommended, faster) # Install uv curl -LsSf https://astral.sh/uv/install.sh | sh # Install dependencies cd ~/.openclaw/workspace/crewai_team uv pip install -r requirements.txt ``` ### Technical Analysis The installation instructions download a script from an external URL and immediately pipe it into `sh`. The content is neither pinned to a reviewed version nor validated with a cryptographic checksum or signature. The effective code executed by this command can change after the Skill has been reviewed. Following redirects through `curl -L` also means that the final script may originate from a different endpoint. Although `astral.sh` is associated with the uv project, the command still relies on the continued integrity of the remote service, DNS resolution, TLS trust chain, hosting infrastructure, and installer distribution process. This execution method is not necessary for the declared PRD-generation functionality. `USAGE.md:5-9` already supplies a Python and pip installation path, and `SKILL.md` only declares Python 3.10 as a required binary. The remote shell execution therefore exceeds the minimum behavior necessary to install or run the Skill. ### Attack Path 1. An attacker compromises the installer endpoint, its hosting infrastructure, a redirect target, or another component in the remote delivery chain. 2. The attacker modifies the response returned by `https://astral.sh/uv/install.sh`. 3. A user follows the recommended installation instructions. 4. `curl` downloads the attacker-controlled response and passes it directly to `sh`. 5. The shell executes the payload without giving the user an opportunity to inspect or verify it. 6. The payload operates with all permissions held by the user running the command. ### Impact Assessment Success ...[truncated 715 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the `curl | sh` installation recommendation. 2. Prefer installation through a trusted operating-system package manager or a reviewed Python installation workflow. 3. If a standalone uv artifact is required: - Pin an exact uv release. - Download the artifact to disk rather than piping it into a shell. - Obtain the expected checksum or signature through an independently authenticated channel. - Verify the checksum or signature before execution. - Allow the user to inspect the downloaded content. 4. Run installation with an unprivileged account and avoid `sudo` unless a specific operation demonstrably requires it. 5. Document the existing pip-based installation path as the default. 6. Pin and verify the Python dependencies installed after uv is available. ]]>
