T03 · Remote Payload Retrieval and Execution
- Location
README.md:53- Finding
Unverified Remote Script Is Piped Directly into Bash
- Content
View full analysis
Vulnerability Details
File Location:
README.md:53
Vulnerability Type: Remote payload retrieval and immediate shell execution
Risk Level: HighComplete Code Snippet:
bash curl -fsSL https://raw.githubusercontent.com/yyh-001/agent-expression/main/install.sh | bash -s -- --hermesTechnical Analysis
The installation instructions retrieve
install.shfrom the mutablemainbranch of a separate personal GitHub repository and pipe the response directly into Bash. The content is neither included in the audited project nor pinned to an immutable commit. No checksum, signature, or other integrity validation is performed.Consequently, the effective payload can change after this Skill has been reviewed. Piping directly into Bash also prevents the user from inspecting the downloaded content before execution. This behavior is not required for the Skill's declared core purpose of changing conversational style; it installs an optional meme component.
Attack Path
- An attacker compromises the referenced repository, maintainer account, branch, or release workflow.
- The attacker modifies
install.shon themainbranch. - A user follows the documented installation command.
curlretrieves the attacker's modified response.- Bash executes the response immediately with the privileges of the invoking user.
- The payload can access or modify any resources available to that user.
Impact Assessment
Successful exploitation provides arbitrary command execution under the invoking user's account. Depending on that account's privileges and environment, the payload could modify user files, read credentials and agent configuration, install persistence, access private repositories, or compromise the Hermes installation. If the command is run with elevated privileges, system-wide compromise may be possible.
- Remediation
View remediation
Remediation Suggestions
- Remove the pipe-to-shell installation command.
- Publish the optional component as a versioned, reviewed release.
- Pin downloads to an immutable commit or release artifact rather than
main. - Publish and verify a cryptographic checksum or signature before execution.
- Separate download and execution so users can inspect the script first.
- Document the files, permissions, network access, and persistence changes made by the installer.
- Run installation with ordinary user privileges and refuse unnecessary elevation.
- Prefer packaging the reviewed dependency through a trusted package manager with integrity metadata.
