T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:31- Finding
Mutable Remote Installer Executed Directly Through a Shell
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 31
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable Code:
bash curl -sSL https://raw.githubusercontent.com/agentrix-ai/clihub/main/install.sh | bashTechnical Analysis
This installation command retrieves
install.shfrom the mutablemainbranch of an external GitHub repository and immediately pipes its contents into Bash. The payload is executed without being pinned to an immutable commit, saved for inspection, or validated using a cryptographic checksum or signature.Consequently, the code that executes can change after the Skill has been reviewed. Compromise of the referenced repository, its maintainer account, or the upstream distribution process could replace the installer with arbitrary shell commands. The document claims that the script only installs a package from PyPI, but the installer itself is not included in the audited project, so that claim cannot be verified from the available artifact.
This execution method is not necessary for the declared functionality. The same document already provides direct
pip,pipx, anduvpackage installation methods. In particular,pipxanduv tool installprovide more isolated alternatives without directly executing a remotely hosted shell script.Attack Path
- An attacker compromises the upstream repository or an authorized maintainer account, or otherwise causes the mutable
main/install.shresource to serve malicious content. - A user or agent follows the alternative installation instruction in
SKILL.md. curldownloads the current remote payload without pinning or integrity verification.- The shell executes the downloaded content immediately through the pipe.
- The payload performs arbitrary actions using the privileges of the invoking account, potentially including credential collection, file modification, additional pa ...[truncated 881 chars]
- An attacker compromises the upstream repository or an authorized maintainer account, or otherwise causes the mutable
- Remediation
View remediation
Remediation Suggestions
-
Remove the
curl | bashinstallation alternative and retain isolated package installation methods such as:bash pipx install agent-cli-hubor:
bash uv tool install agent-cli-hub -
Pin the package to a reviewed version rather than automatically installing the latest release.
-
If a shell installer is operationally indispensable:
- Reference an immutable, reviewed commit rather than the mutable
mainbranch. - Download the installer to a local file instead of piping it directly into a shell.
- Verify it against a trusted, separately published cryptographic checksum or signature.
- Inspect the verified file before execution.
- Run it without administrative privileges and within an appropriately restricted environment.
- Reference an immutable, reviewed commit rather than the mutable
-
Use failure-aware download flags such as
curl --fail --show-error --locationso HTTP errors are not silently passed into the execution flow. -
Document every package and provider CLI installed by the tool, pin reviewed versions and hashes where supported, and request only the authentication scopes required for explicitly authorized operations.
-
