T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:20
- Finding
- Unpinned Remote Installer Is Piped Directly Into Bash## Vulnerability Details **File Location**: `SKILL.md:20` **Vulnerability Type**: `T03: Remote Payload Retrieval and Execution` **Risk Level**: High **Complete Code Snippet**: ```bash curl -s https://raw.githubusercontent.com/zouyawen/openclaw-qrcode/main/install.sh | bash openclaw gateway restart ``` ### Technical Analysis The recommended installation command retrieves a shell script from the mutable `main` branch of a personal GitHub repository and immediately passes its contents to Bash. The script is not included in the audited artifact, pinned to an immutable commit, or authenticated through a checksum or cryptographic signature. Consequently, the commands ultimately executed are not fixed by the reviewed Skill. They may change whenever the remote branch changes. Direct piping also prevents meaningful review before execution and, without options such as `--fail`, may pass unexpected server responses to the shell. The audited project contains only `SKILL.md`; therefore, neither the remote installer's behavior nor the document's claims regarding path restrictions, input validation, and secure error handling can be verified from this artifact. There is no direct evidence in the audited file that the installer currently performs credential theft, persistence, or exfiltration, but the installation mechanism gives the remote source the technical ability to execute such operations. ### Attack Path 1. A user follows the Skill's prominently recommended full-feature installation instructions. 2. `curl` retrieves the current contents of `install.sh` from the repository's mutable `main` branch. 3. The response is streamed directly to Bash without integrity verification or prior inspection. 4. If the repository, maintainer account, hosting path, or delivered script is compromised or maliciously modified, attacker-selected shell commands execute locally. 5. Those commands operate with all permissions available to the user runnin ...[truncated 804 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the `curl | bash` installation pattern. 2. Include the installer and companion implementation in the distributed, auditable package whenever possible. 3. If remote retrieval is unavoidable, pin the download URL to a reviewed immutable commit or versioned release rather than `main`. 4. Publish and verify a cryptographic checksum or signature before execution. 5. Download the script to a local file, inspect it, and execute it only after successful verification. 6. Use strict transport and failure handling, such as `curl --fail --show-error --location`, while noting that TLS alone does not replace payload integrity verification. 7. Document every file, dependency, service, and configuration change performed by the installer. 8. Run installation with the least-privileged account and avoid requesting administrator privileges unless a specific, documented operation requires them. 9. Package dependencies through trusted, version-pinned package-management mechanisms and provide reproducible installation instructions.
