T03 · Remote Payload Retrieval and Execution
- Location
install.sh:84- Finding
Unverified Remote Installer Executed Directly by Shell
- Content
View full analysis
&1 if [ -f "$HOME/.local/bin/uv" ]; then UV_BIN="$HOME/.local/bin/uv" elif [ -f "/root/.local/bin/uv" ]; then UV_BIN="/root/.local/bin/uv" else error "Failed to install uv. Install manually: https://docs.astral.sh/uv/" exit 1 fi success "uv installed at $UV_BIN" fi ``` The same unsafe installation pattern is presented in the manual instructions: ```bash # 2. Install uv curl -LsSf https://astral.sh/uv/install.sh | sh # 3. Create venv + install uv venv .venv --python 3.12 uv pip install -e . --python .venv/bin/python ``` ### Technical Analysis The installer sends a mutable HTTPS response directly to `sh`. The downloaded content is neither displayed for review nor validated using a pinned cryptographic checksum, release signature, or immutable artifact version. Although `astral.sh` is presented as the official source for uv, the trustworthiness of the expected operator does not eliminate the vulnerability inherent in executing a mutable network response. A compromise of the hosting account, distribution infrastructure, DNS or TLS trust chain, or upstream installation script would convert the installer into an arbitrary code-execution channel. Redirect handling is enabled through `curl -L`, so the final script may also originate from another endpoint. The command executes with all permissions of the user running `install.sh`. Given the default `/root/clawd` path and explicit `/root/.local/bin/uv` handling, the installer may reasonably be run as root, substantially increasing the potential impact. This behavior exceeds minimum privilege. Installing a Python package does not require executing an ...[truncated 1096 chars]- Remediation
View remediation
