T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:19- Finding
Remote Installer Downloaded and Executed Without Verification
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill has a coherent DeFi-yield purpose, but its setup asks users to execute mutable remote code and install an unverified built binary into a system-wide PATH location.
Review this skill before installing. Use a pinned, reviewed release or commit, verify checksums or signatures, avoid `curl | sh`, build only after inspecting the source and dependencies, and prefer a user-local install path such as `$HOME/.local/bin` instead of `/usr/local/bin`. The documented `.env` file appears to contain only a public API endpoint, not secrets.
SKILL.md:19Remote Installer Downloaded and Executed Without Verification
SKILL.md:27Unpinned External Repository Is Built and Installed Into a System-Wide Executable Path
The shell pipe to 'sh' creates a direct command-execution chain from remote content to the local shell, which is a classic abuse pattern. Within a skill document, this is especially risky because users may follow setup instructions verbatim without scrutinizing the fetched script.
If Rust is not installed, run:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
The tool needs a .env file in the current working directory with the DeFi Llama API endpoint. Before each run, ensure it exists:
if [ ! -f .env ]; then echo 'LLAMA_DOMAIN="https://yields.llama.fi"' > .env; fi
The skill is described as a tool for querying DeFi yield opportunities, but the documentation directs installation of Rust, cloning a GitHub repository, building code, and copying a binary into /usr/local/bin. Those are system administration and software installation capabilities, which are not justified by the stated end-user purpose of comparing yields.
The skill instructs users to run commands that install toolchains, clone and build code, write files, and copy binaries into system PATH without clearly warning about those side effects. In an agent-skill context, that increases the chance that a user or downstream automation performs privileged or persistent system modifications without informed consent.
Piping a remotely fetched script directly into 'sh' executes unreviewed code from the network at install time. If the remote endpoint, transport chain, or hosting account is compromised, users could execute arbitrary attacker-controlled code on their machine.
If Rust is not installed, run:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
The manifest frames the skill as querying DeFi yield data, but the documentation instructs deleting a local cache file with rm -f data.json to force refresh. File deletion is a modification capability not inherent to the user-facing purpose of comparing yield opportunities.
The markdown includes Chinese error strings in the troubleshooting table, but the skill otherwise uses English and does not explain that the tool may emit localized output or offer a language choice. This can violate language/locale policy expectations by implicitly forcing a specific language without user opt-in.