T03 · Remote Payload Retrieval and Execution
- Location
INSTALL.md:18- Finding
Mutable Remote Installer Is Executed Directly Through a Shell
- Content
View full analysis
Vulnerability Details
File Location:
INSTALL.md:18-19andINSTALL.md:187-188
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable code at
INSTALL.md:18-19:bash curl -fsSL https://raw.githubusercontent.com/emersonding/kindle-clip-processor/master/scripts/install-kindle-clip.sh \ | KINDLE_CLIP_REPO=emersonding/kindle-clip-processor shRepeated update command at
INSTALL.md:187-188:bash curl -fsSL https://raw.githubusercontent.com/emersonding/kindle-clip-processor/master/scripts/install-kindle-clip.sh \ | KINDLE_CLIP_REPO=emersonding/kindle-clip-processor shTechnical Analysis
The installation guide pipes an HTTP response directly into
sh. The requested script comes from the mutablemasterbranch of a personal GitHub repository rather than an immutable commit or cryptographically verified release.The downloaded installer is not included in the audited Skill bundle. Consequently, its effective behavior cannot be reviewed from this project and can change after publication or audit. No checksum, digital signature, commit pin, content inspection, or release attestation is required before execution.
This is not necessary for the Skill's declared local parsing functionality. A user-scoped, version-pinned binary or an audited source build would provide the required functionality without creating a mutable remote code-execution channel.
Attack Path
- An attacker compromises the repository owner account, modifies the
masterbranch, or otherwise gains control over the installer response. - The attacker adds arbitrary shell commands to
install-kindle-clip.sh. - A user or AI Agent follows the recommended installation or update command.
curlretrieves the attacker-controlled response.- The pipeline passes the response directly to
shwithout verification or inspection. - The attacker's commands execute with ...[truncated 784 chars]
- An attacker compromises the repository owner account, modifies the
- Remediation
View remediation
Remediation Suggestions
- Remove both
curl | shcommands from the installation and update instructions. - Pin downloads to a specific immutable release version and commit rather than
masteror “latest.” - Download the installer or artifact to a local file instead of executing the network response:
bash curl -fL -o install-kindle-clip.sh \ https://raw.githubusercontent.com/emersonding/kindle-clip-processor/IMMUTABLE_COMMIT/scripts/install-kindle-clip.sh - Publish an expected SHA-256 digest through a separately protected release channel and verify it before execution:
bash echo "EXPECTED_SHA256 install-kindle-clip.sh" | sha256sum --check - - Sign release artifacts and verify signatures using a documented maintainer key or a provenance system such as Sigstore.
- Require users to inspect the downloaded script before explicitly invoking it.
- Prefer an audited source build from a pinned tag or a reputable package registry with locked versions and verifiable provenance.
- Keep installation user-scoped and avoid elevated privileges unless a user explicitly requests a system-wide installation.
- Remove both
