T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:31
- Finding
- Unpinned Remote Executables Installed from Mutable Third-Party Releases<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 31-50 **Vulnerability Type**: Remote executable retrieval and supply-chain trust weakness **Risk Level**: High ### Vulnerable Code ```bash # noisepan VER=$(curl -s https://api.github.com/repos/ppiankov/noisepan/releases/latest | grep tag_name | cut -d'"' -f4 | tr -d v) curl -fsSL "https://github.com/ppiankov/noisepan/releases/download/v${VER}/noisepan_${VER}_linux_amd64.tar.gz" -o /tmp/noisepan.tar.gz curl -fsSL "https://github.com/ppiankov/noisepan/releases/download/v${VER}/checksums.txt" -o /tmp/noisepan-checksums.txt # Verify checksum grep linux_amd64 /tmp/noisepan-checksums.txt | (cd /tmp && sha256sum -c) tar xzf /tmp/noisepan.tar.gz -C /usr/local/bin noisepan rm /tmp/noisepan.tar.gz /tmp/noisepan-checksums.txt # entropia VER=$(curl -s https://api.github.com/repos/ppiankov/entropia/releases/latest | grep tag_name | cut -d'"' -f4 | tr -d v) curl -fsSL "https://github.com/ppiankov/entropia/releases/download/v${VER}/entropia_${VER}_linux_amd64.tar.gz" -o /tmp/entropia.tar.gz curl -fsSL "https://github.com/ppiankov/entropia/releases/download/v${VER}/checksums.txt" -o /tmp/entropia-checksums.txt # Verify checksum grep linux_amd64 /tmp/entropia-checksums.txt | (cd /tmp && sha256sum -c) tar xzf /tmp/entropia.tar.gz -C /usr/local/bin entropia rm /tmp/entropia.tar.gz /tmp/entropia-checksums.txt ``` ### Technical Analysis The installation procedure dynamically queries the GitHub `releases/latest` endpoint and downloads precompiled executables selected by the resulting mutable version. The effective code executed by the Skill can therefore change after the Skill itself has been reviewed. Although checksum files are downloaded, both the executable archives and their expected checksums come from the same GitHub repository and release infrastructure. If the repository owner account, release workflow, signing environment, or GitHub release is compromised, an attacker can replace both the archive ...[truncated 1937 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin explicitly reviewed versions rather than resolving `releases/latest`. 2. Embed the expected SHA-256 digest for each supported artifact directly in the reviewed Skill release. 3. Prefer cryptographically signed release artifacts and verify signatures against a trusted public key obtained independently of the release being downloaded. 4. Abort installation if version resolution, download, digest validation, or signature validation fails. 5. Default to a user-local executable directory such as `~/.local/bin`; request explicit approval before writing to `/usr/local/bin`. 6. Download to a securely created temporary directory and inspect archive paths before extraction. 7. Consider directing users to build from a pinned source commit or use a reviewed package repository with provenance/attestation support. 8. Separate installation from normal Skill execution so that feed processing cannot silently update dependencies. ]]>
