T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:37- Finding
Mutable Remote Installation Script Executed Directly by Bash
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 37
Vulnerability Type:T03: Remote Payload Retrieval and Execution
Risk Level: CriticalVulnerable Code:
bash curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bashTechnical Analysis
The Quick Start downloads a shell script from a mutable
mainbranch and sends the response directly to Bash. The command does not pin the payload to an immutable commit, verify a checksum or cryptographic signature, or save the script for inspection before execution.Although the GitHub organization and repository correspond to the project identified in the Skill metadata, the remote script is not included in the audited artifact. Its effective contents can therefore change after this Skill has been reviewed. Repository compromise, maintainer-account compromise, or unauthorized modification of the upstream script could turn this documented installation command into an arbitrary-code execution channel.
Direct execution is not necessary to achieve the declared installation function. A pinned, independently verified release artifact would provide installation functionality with materially lower supply-chain risk.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or another part of the remote delivery path.
- The attacker modifies
scripts/install.shon the mutablemainbranch to include malicious shell commands. - A user or agent follows the documented Quick Start command.
curlretrieves the modified response without validating its identity or integrity.- The shell executes the response immediately, without an opportunity for inspection.
- The malicious script acts with all privileges available to the invoking account.
Impact Assessment
Successful exploitation provides arbitrary command execution under the invoking user's account. The payload coul ...[truncated 544 chars]
- Remediation
View remediation
Remediation Suggestions
-
Do not pipe network responses directly into a shell.
-
Publish versioned installation artifacts and pin the documentation to an immutable release tag or commit.
-
Provide a SHA-256 checksum or cryptographic signature through an independently protected release process.
-
Download the installer to a local file, verify its integrity, and allow users to inspect it before execution.
-
Avoid elevated privileges unless a clearly identified installation step requires them.
-
Prefer a trusted package manager with signed metadata and reproducible, versioned packages where available.
-
Use a safer documented flow similar to:
bash curl -fL -o install.sh "https://raw.githubusercontent.com/NousResearch/hermes-agent/<immutable-commit>/scripts/install.sh" echo "<expected-sha256> install.sh" | sha256sum -c - less install.sh bash install.sh
The immutable commit and expected checksum must be replaced with reviewed, project-published values.
-
