T03 · Remote Payload Retrieval and Execution
Error
- Location
- README.md:6
- Finding
- Mutable Remote Installer Is Piped Directly Into a Shell<![CDATA[ ## Vulnerability Details **File Location**: `README.md:6-10`; equivalent instruction at `SKILL.md:10-15` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```markdown ## Install ```bash curl -fsSL https://agent-knowhow.vercel.app/install.sh | sh -s -- clawhub ``` Requires Node.js. Installs to `~/.clawbump/bin`, no sudo needed. ``` The equivalent installation instruction in `SKILL.md` is: ```markdown **macOS / Linux:** ``` curl -fsSL https://agent-knowhow.vercel.app/install.sh | sh -s -- clawhub ``` ``` ### Technical Analysis The installation procedure downloads a mutable script from an external deployment domain and passes it directly to `sh`. It does not pin a release, verify a checksum or cryptographic signature, or give the user an opportunity to inspect the downloaded content. The repository does not include `install.sh`, so the actual installer behavior cannot be audited from this artifact. Although the instructions state that the installer does not require `sudo`, it still executes arbitrary commands with all privileges available to the current user. Installing a CLI is legitimate for the declared functionality, but executing unauthenticated, mutable remote code exceeds the minimum privilege and trust necessary to perform that installation. ### Attack Path 1. An attacker compromises the hosting account, deployment pipeline, domain, DNS resolution, or the remote `install.sh` resource. 2. The attacker replaces the installer with a malicious shell payload. 3. A user follows the documented installation command. 4. `curl` streams the modified content directly into `sh`. 5. The payload executes with the user's privileges before the user can inspect it. ### Impact Assessment A malicious installer could read or modify any file accessible to the user, steal credentials and source code, alter shell configuration, install persistence, download additional payloads, or replace local develo ...[truncated 142 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Publish the CLI through a trusted package registry using immutable, versioned releases. 2. Pin installation instructions to an exact release rather than a mutable endpoint. 3. Publish a SHA-256 or stronger checksum through a separately protected channel. 4. Cryptographically sign release artifacts and verify the signature before execution. 5. Replace the pipeline with separate download, verification, inspection, and execution steps. 6. Include the installer source in the audited repository. 7. Run installation with ordinary user privileges and clearly document every file it creates or changes. ]]>
