T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:34
- Finding
- Mutable Remote Installer Is Downloaded and Executed Without Verification<![CDATA[ ## Vulnerability Details **File Location**: `README.md:15`, `SKILL.md:34-40`, `install.sh:1-4` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Complete Code Snippet From `README.md:15`: ```bash bash <(curl -fsSL https://raw.githubusercontent.com/daMustermann/claw-qwen3-tts/main/install.sh) ``` From `SKILL.md:34-40`: ```markdown ## First-Time Setup If the skill is not yet installed (no `~/clawd/skills/qwen3-tts` directory), run: ```bash bash <(curl -fsSL https://raw.githubusercontent.com/daMustermann/claw-qwen3-tts/main/install.sh) ``` ``` From `install.sh:1-4`: ```bash #!/usr/bin/env bash # install.sh — One-command installer for the Qwen3-TTS OpenClaw skill # Usage: bash install.sh # or: curl -fsSL https://raw.githubusercontent.com/daMustermann/claw-qwen3-tts/main/install.sh | bash ``` ### Technical Analysis The installation instructions retrieve a shell script from the mutable `main` branch of a personal GitHub repository and execute it immediately. There is no immutable commit reference, checksum, digital signature, local review step, or provenance verification. The payload that users or agents execute may therefore differ from the code audited in this project. A compromise of the repository, maintainer account, GitHub delivery path, or upstream branch can convert the installation command into arbitrary shell execution. This remote execution mechanism is not necessary for the declared TTS functionality. A bundled and reviewed installer, or a verified release artifact, can provide the same functionality with substantially less supply-chain risk. ### Attack Path 1. An attacker compromises the upstream repository or maintainer account, or otherwise gains permission to modify `main`. 2. The attacker replaces `install.sh` with a malicious payload. 3. A user or agent follows the documented first-time setup command. 4. `curl` retrieves the current malicious script. 5. Bash executes it immediately ...[truncated 672 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove all `curl | bash` and process-substitution installation instructions. 2. Distribute the installer inside the reviewed Skill package. 3. If a remote artifact is unavoidable: - Reference an immutable commit or versioned release. - Download the file without executing it. - Verify a published SHA-256 checksum or cryptographic signature. - Display the resolved version and request explicit user approval. - Execute only the verified local copy. 4. Publish signed releases and document the expected signer identity. 5. Run installation with ordinary user privileges and explicitly warn users not to use `sudo`. ]]>
