T03 · Remote Payload Retrieval and Execution
Error
- Location
- install.sh:3
- Finding
- Installation instructions execute a mutable remote script through curl and Bash<![CDATA[ ## Vulnerability Details **File Location**: `install.sh:3` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash # Usage: curl -fsSL https://raw.githubusercontent.com/sfsf332/claw-loudyai-skill/main/install.sh | bash ``` The original comment documents this command as the supported installation method. ### Technical Analysis The documented command downloads `install.sh` from the mutable `main` branch and sends it directly to Bash. The user has no opportunity to inspect the downloaded content before execution, and the process does not pin a commit, validate a checksum, or verify a cryptographic signature. Although the command appears in a comment inside the audited artifact, it is an executable installation instruction intended to be copied or invoked by users. The effective code executed at installation time can therefore differ from the version reviewed during this audit. This behavior is not required to provide the declared Loudy.ai API functionality. A safer installer can be distributed as a versioned artifact and inspected before execution. ### Attack Path 1. An attacker compromises the repository owner, GitHub account, repository, DNS/network trust chain, or an authorized maintainer. 2. The attacker changes `main/install.sh` at the referenced URL. 3. A user follows the documented `curl | bash` installation command. 4. Bash immediately executes the modified response with the user's current privileges. 5. If the user runs the command with elevated privileges—as the installer may require for its default system path—the payload executes with those elevated privileges. ### Impact Assessment A malicious remote installer can execute arbitrary commands with all privileges held by the invoking user. Potential impact includes: - Reading or altering files accessible to that user. - Stealing environment variables and API credentials. - Installing additional persistence. - Replacing OpenC ...[truncated 161 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the `curl | bash` installation recommendation. 2. Publish immutable, versioned release archives rather than installing from `main`. 3. Provide a SHA-256 or stronger digest over each release artifact. 4. Sign releases and document signature verification. 5. Require users to download, inspect, and verify the installer before running it. 6. Pin installation to a specific release or commit. 7. Avoid requiring root privileges; use a user-scoped Skill directory by default. 8. Fail closed if integrity or signature verification fails. ]]>
