T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:54
- Finding
- Mutable Remote Installer Is Downloaded and Executed Without Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:54`, `SKILL.md:67`, and `SKILL.md:97` **Vulnerability Type**: Remote payload retrieval and immediate shell execution **Risk Level**: High ### Vulnerable Code ```bash curl -sL https://raw.githubusercontent.com/dreamwing/clawbridge/master/install.sh | bash ``` The command appears in the installation declaration, update instructions, and user-facing installation documentation. ### Technical Analysis The Skill downloads `install.sh` from the mutable `master` branch of a personal GitHub repository and pipes the response directly into Bash. This makes remotely hosted content part of the effective executable payload even though that content is not included in the audited project. No commit pin, cryptographic checksum, signature validation, or review step is required before execution. Consequently, the behavior of the installation command can change after the Skill has been reviewed. Compromise of the repository, maintainer account, delivery channel, or referenced branch could result in arbitrary replacement code being executed. The use of `curl -sL` further reduces visibility: silent mode suppresses ordinary progress and diagnostic output, while redirect following permits execution of content returned after HTTP redirects. Piping directly to Bash also eliminates a meaningful opportunity for users to inspect the downloaded file. Downloading application code is consistent with the declared installation goal, but immediate execution of mutable, unverified content exceeds the minimum necessary risk. A local, reviewed installer or a pinned and authenticated release artifact would achieve the same functional objective with a substantially smaller trust boundary. ### Attack Path 1. An attacker compromises the `dreamwing/clawbridge` repository, its maintainer account, or another mechanism capable of changing the `master` branch. 2. The attacker modifies `install.sh` to include arbitrary shell commands. 3 ...[truncated 1159 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Include the installer and executable Skill source inside the reviewed package rather than retrieving executable logic at installation time. 2. If remote distribution is unavoidable, download a versioned release artifact without executing it immediately. 3. Pin the source to an immutable release version or commit instead of the mutable `master` branch. 4. Publish a trusted SHA-256 or stronger digest through a separate authenticated release channel and verify it before execution. 5. Prefer signed releases and verify the maintainer's signature against a documented, pinned public key. 6. Save the installer to a local file, fail on HTTP errors with `curl --fail`, validate its type and contents, and present it for explicit review before invocation. 7. Avoid `curl | bash` in installation and update documentation. For example: ```bash curl --fail --location --output install.sh \ https://github.com/dreamwing/clawbridge/releases/download/v1.0.0/install.sh printf '%s %s\n' 'EXPECTED_SHA256' 'install.sh' | sha256sum --check - bash install.sh ``` 8. Ensure the installer uses least privilege, performs no implicit privilege escalation, and clearly displays every persistent or network-facing change before applying it. ]]>
