T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:42- Finding
Mutable Remote Installation Script Is Piped Directly into Bash
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 42
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable Code
bash curl -sSL https://raw.githubusercontent.com/covoyage/kairoa-cli/main/install.sh | bashTechnical Analysis
The installation command retrieves a shell script from the mutable
mainbranch of an external GitHub repository and immediately executes it with Bash. The payload is not pinned to an immutable commit, downloaded for mandatory inspection, verified against a checksum, or authenticated with a release signature.The surrounding documentation advises users to inspect the script and avoid running it as root, but the provided command itself does not enforce either control. Because retrieval and execution are connected by a pipe, the exact code executed can differ from the code reviewed when the Skill was published.
This behavior is not required for the declared developer-tool functionality. It is only an installation convenience and therefore exceeds the minimum risk necessary to provide the Skill.
Attack Path
- An attacker compromises the upstream GitHub account, repository, maintainer credentials, or branch-protection process.
- The attacker modifies
install.shon themainbranch to contain malicious shell commands. - A user or Agent follows the installation command from
SKILL.md. curlretrieves the attacker-controlled script without version or integrity validation.- Bash immediately executes the response with the invoking user's privileges.
- The payload can access user-readable files, modify user configuration, install additional executables, establish persistence where permitted, or transmit credentials over the network.
A network or upstream compromise affecting the returned content could produce the same result. Running the command with elevated privileges, despite the warning, would increase the impact t ...[truncated 772 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the direct
curl | bashinstallation command. - Pin installation artifacts to an immutable, audited release version rather than the
mainbranch. - Download scripts and binaries as separate files before execution.
- Publish SHA-256 or stronger checksums through an authenticated release channel and require verification before installation.
- Sign release artifacts with a verifiable signing mechanism, such as Sigstore or a maintained release-signing key.
- Fail closed when checksum or signature verification fails.
- Require explicit user confirmation before executing downloaded code.
- Run installation with ordinary user privileges wherever possible and document precisely which installation step, if any, requires elevation.
- Prefer a source build from a pinned commit after dependency verification.
A safer workflow would resemble:
bash curl -fL -o install.sh https://raw.githubusercontent.com/covoyage/kairoa-cli/IMMUTABLE_COMMIT/install.sh echo "EXPECTED_SHA256 install.sh" | sha256sum -c - less install.sh bash install.sh- Remove the direct
