T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:35- Finding
Unpinned Remote Scripts Are Downloaded and Executed Directly
- Content
View full analysis
--user --pass ``` ```bash bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/hummingbot-deploy/scripts/install_mcp.sh) \ --agent claude --user admin --pass admin ``` ```bash bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/hummingbot-deploy/scripts/verify.sh) ``` ### Technical Analysis The instructions stream shell scripts from the mutable `main` branch of a remote GitHub repository directly into Bash. No immutable commit reference, checksum, signature, or local review is required before execution. Consequently, the effective code executed by the Skill can change after this package has been reviewed. The project already contains local copies of these scripts, so remote retrieval is not necessary for the declared deployment functionality. The MCP installation command is especially sensitive because API credentials are supplied as arguments to code retrieved from the network. If the upstream repository, account, branch, DNS path, or delivery infrastructure is compromised, the replacement script could read those arguments and execute arbitrary commands. ### Attack Path 1. An attacker compromises the upstream repository, maintainer account, or mutable `main` branch. 2. The attacker replaces one of the referenced scripts with a malicious payload. 3. A user or AI agent follows the instructions in `SKILL.md`. 4. `curl` retrieves the changed payload and process substitution ...[truncated 871 chars]- Remediation
View remediation
