T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:169
- Finding
- Unverified Remote Installer Is Piped Directly into Bash## Vulnerability Details **File Location**: `SKILL.md`, line 169 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash curl -fsSL https://outlit.ai/install.sh | bash ``` ### Technical Analysis The installation instructions download a shell script from an external URL and immediately execute the response with Bash. The effective executable payload is not included in the audited project and can change at any time after this Skill has been reviewed. No immutable version, cryptographic signature, checksum, or content-review step is specified. HTTPS protects transport integrity and authenticates the server under the applicable certificate trust model, but it does not ensure that future responses are identical to a reviewed release. A compromise of the domain, DNS, hosting account, web application, deployment pipeline, or installer publication process could therefore turn this command into an arbitrary-code execution mechanism. Installing the declared CLI is consistent with the Skill's purpose, but unrestricted execution of a mutable shell response exceeds the minimum privileges necessary. The document already lists package-manager alternatives that offer more transparent package identity and release management. ### Attack Path 1. An attacker compromises the installer endpoint or an upstream component capable of changing its response. 2. The attacker replaces or modifies `install.sh` with commands that perform malicious actions. 3. A user or agent follows the documented installation command. 4. `curl` retrieves the modified response and streams it directly to Bash without saving, inspecting, or verifying it. 5. Bash executes the attacker's commands with all privileges available to the invoking user. 6. The payload can access credentials and data available to that account, modify files, install additional components, or establish persistence where local permissions allow. ### Impact Assessment S ...[truncated 546 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the pipe-to-shell installation command and make a trusted package manager the primary installation method, for example: ```bash npm install -g @outlit/cli ``` or: ```bash brew install outlitai/tap/outlit ``` 2. Pin the package or formula to a reviewed release where the relevant package manager supports version pinning. 3. If a standalone installer is unavoidable: - Publish it under an immutable, versioned release URL. - Download it to a local file without executing it. - Publish a checksum and a cryptographic signature through an independently protected channel. - Verify both before execution. - Allow the user to inspect the downloaded script. - Require explicit user approval before running it. - Avoid requesting elevated privileges unless a documented installation step strictly requires them. 4. Document the installer artifacts, files modified, network destinations contacted, and permissions required. 5. Protect the release pipeline with signed releases, restricted publishing credentials, multifactor authentication, audit logging, and reproducible build or provenance metadata.
