T03 · Remote Payload Retrieval and Execution
Error
- Location
- README.md:58
- Finding
- Remote Installer Is Downloaded and Executed Without Verification<![CDATA[ ## Vulnerability Details **File Location**: `README.md`, line 58 **Vulnerability Type**: Remote payload retrieval and immediate shell execution **Risk Level**: Critical ### Vulnerable Code ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` ### Technical Analysis The installation instructions pipe a mutable remote script directly into a shell. The downloaded content is executed immediately without: - Pinning the installer to a reviewed version. - Verifying a cryptographic checksum or signature. - Saving and inspecting the script before execution. - Constraining the script in a sandbox or low-privilege environment. The HTTPS source is associated with the uv project, but source reputation does not eliminate the underlying risk. If the remote host, publishing account, DNS resolution, TLS trust path, or delivery infrastructure is compromised, the command will execute attacker-controlled shell code. This behavior exceeds the minimum privileges necessary for the Skill. The project can be installed with Python's built-in `venv` and `pip`, both of which are already documented as alternatives. ### Attack Path 1. An attacker compromises the remote installer host, its publishing process, or another component of the delivery chain. 2. The attacker modifies the response returned by `https://astral.sh/uv/install.sh`. 3. A user follows the README and runs the documented command. 4. `curl` retrieves the modified payload. 5. The pipe sends the payload directly to `sh` without inspection or integrity verification. 6. The payload executes with all privileges available to the invoking user. ### Impact Assessment A malicious installer could execute arbitrary commands with the invoking user's privileges. Depending on that user's access, this could permit: - Reading, modifying, or deleting user-accessible files. - Accessing credentials, API tokens, SSH material, and development configuration. - Modifying shell profiles or application configuration. - Ins ...[truncated 302 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the pipe-to-shell installation method from the README. 2. Prefer the existing built-in virtual-environment workflow: ```bash python -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt ``` 3. If uv must remain an installation option: - Link to official installation documentation rather than executing a remote script. - Pin a specific uv release. - Download the release artifact as a separate step. - Verify its published cryptographic checksum or signature. - Only execute the verified artifact after users have an opportunity to inspect it. 4. Explicitly advise users not to run installation commands as root or through `sudo`. 5. Prefer distribution package managers or other verifiable, versioned installation channels where available. ]]>
