T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:5
- Finding
- Mutable Remote Installation Script Enables Post-Review Payload Substitution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:5` **Vulnerability Type**: `T03: Remote Payload Retrieval and Execution` **Risk Level**: High ### Vulnerable Code ```yaml metadata: {"openclaw":{"emoji":"🌟","homepage":"https://developers.stellar.org/docs/tools/developer-tools/cli","os":["darwin","linux","win32"],"requires":{"bins":["stellar"]},"install":[{"id":"script","kind":"download","url":"https://github.com/stellar/stellar-cli/raw/main/install.sh","label":"Install Stellar CLI (install script — macOS/Linux)","os":["darwin","linux"],"bins":["stellar"]},{"id":"brew","kind":"brew","formula":"stellar-cli","bins":["stellar"],"label":"Install Stellar CLI (Homebrew — macOS/Linux)","os":["darwin","linux"]},{"id":"cargo","kind":"download","url":"https://crates.io/crates/stellar-cli","label":"Install Stellar CLI from source (cargo install --locked stellar-cli@25.1.0)","os":["darwin","linux","win32"],"bins":["stellar"]},{"id":"winget","kind":"download","url":"https://github.com/stellar/stellar-cli/releases/latest","label":"Install Stellar CLI (winget — Windows)","os":["win32"],"bins":["stellar"]}]}} ``` ### Technical Analysis The installation metadata retrieves `install.sh` from the mutable `main` branch of an external GitHub repository. Although the URL appears to belong to the official Stellar organization, it is not pinned to a reviewed commit or immutable release artifact. No checksum or cryptographic signature is specified. Consequently, the effective installation payload can change after the Skill itself has been audited. Compromise of the upstream repository, its maintainers, release workflow, or hosting account could replace the script with attacker-controlled commands. This behavior is not required at this privilege level: installation can use an immutable, versioned release with integrity verification instead. The other metadata entries also refer to mutable package or release locations, including `releases/latest`, but the direct shell-s ...[truncated 1321 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the installation URL to a specific reviewed Git commit or immutable, versioned release. 2. Publish and verify a SHA-256 or stronger digest before executing the downloaded artifact. 3. Prefer signed release artifacts and verify the publisher's cryptographic signature. 4. Do not pipe or automatically execute downloaded content; save it, validate it, and then invoke it explicitly. 5. Replace `releases/latest` with a fixed release version. 6. Run installation with ordinary user privileges unless a narrowly defined operation explicitly requires elevation. 7. Document the source, expected digest, destination path, and filesystem changes made by the installer. ]]>
