T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:67- Finding
Execution of a Mutable Remote Shell Script Without Integrity Verification
- Content
View full analysis
" \ --output "" ``` ```bash bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \ --input /tmp/slides_content.md \ --output ~/slides_output.pdf ``` ```bash bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \ --input "" \ --output "" \ --edit ``` ### Technical Analysis The Skill directs the Agent to retrieve a shell script from the mutable `main` branch of an external GitHub repository and immediately execute the response using Bash process substitution. The downloaded content is not pinned to an immutable commit and is not checked against a cryptographic hash or signature. Consequently, the effective code executed by the Skill can change after the package has been reviewed. HTTPS protects transport integrity but does not protect against malicious or compromised upstream changes. This behavior is unnecessary for the declared slide-generation functionality because the project already includes a local copy at `scripts/generate_slides.sh`. Executing the remote version therefore exceeds the minimum privileges and network access required by the Skill. The use of `curl -s` also suppresses diagnostic output. The command does not use `--fail`, so HTTP failures or unexpected response content are not handled safely before being passed to Bash. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or the workflow that publishes the remote scri ...[truncated 1303 chars]- Remediation
View remediation
