T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:26
- Finding
- Unverified Remote Installation Script Executed Directly by Bash<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:26`, `references/deployment.md:7`, and `references/deployment.md:18` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code `SKILL.md:26`: ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` `references/deployment.md:7`: ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` `references/deployment.md:18`: ```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git ``` ### Technical Analysis These commands download content from a mutable external HTTPS endpoint and pass it directly to Bash. The script is not pinned to a release, checked against a cryptographic digest, verified with a trusted signature, or saved for inspection before execution. HTTPS protects the network connection under normal conditions, but it does not guarantee that the server will always return the same reviewed script. The effective payload may change after this Skill has been audited. Compromise of the website, hosting infrastructure, CDN, DNS configuration, TLS account, deployment pipeline, or upstream project could therefore turn the documented installation command into an arbitrary-code-execution channel. The use of `curl -f` and `-sS` only controls HTTP error handling and output behavior. It does not validate the integrity or authenticity of the downloaded script beyond ordinary TLS. ### Attack Path 1. An attacker compromises or gains control over `https://openclaw.ai/install.sh` or infrastructure capable of changing its response. 2. A user or an agent follows the installation instructions in this Skill. 3. `curl` retrieves the attacker-controlled response. 4. The shell pipe sends the response directly to Bash without an integrity check or review step. 5. Bash executes the payload with all permissions held by the invoking account. 6. The payload can modify user files, access user-readable secrets, install additional softwar ...[truncated 991 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove every direct `curl | bash` installation command. 2. Publish versioned installation artifacts at immutable release URLs. 3. Download the installer to a local file before execution: ```bash curl -fL -o openclaw-install.sh "https://example.invalid/releases/vX.Y.Z/openclaw-install.sh" ``` 4. Publish the expected SHA-256 digest through a separately protected release channel and verify it before execution: ```bash printf '%s %s\n' "EXPECTED_SHA256" "openclaw-install.sh" | sha256sum --check - ``` 5. Prefer signing release artifacts with a documented signing key and require signature verification. 6. Allow users to inspect the downloaded file before explicitly invoking it: ```bash less openclaw-install.sh bash openclaw-install.sh ``` 7. Document that the installer must not be run as root unless a specific, reviewed installation step requires elevation. 8. Prefer a version-pinned package from a trusted registry when a package-manager installation method is available. ]]>
