T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:19
- Finding
- Unverified Remote Installer Executed Directly by a Shell## Vulnerability Details **File Location**: `SKILL.md`, line 19 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical **Vulnerable Code**: ```bash curl -L https://fly.io/install.sh | sh ``` ### Technical Analysis The Linux installation instructions download a remote script from `https://fly.io/install.sh` and stream it directly into `sh`. The `-L` option also permits redirects. The command does not pin a release, constrain the final redirect destination, verify a cryptographic signature or checksum, or allow the downloaded script to be inspected before execution. Although the `fly.io` domain is consistent with the Skill's declared Fly.io management functionality, HTTPS only protects the connection to the resolved endpoint; it does not guarantee that the remotely hosted script is immutable or uncompromised. The effective payload can change after this Skill has been reviewed. Installing `flyctl` is necessary for the declared functionality, but executing mutable network content directly through a shell is not the minimum-risk installation method. A compromised origin, publishing pipeline, redirect destination, DNS/TLS trust chain, or upstream installer could turn this instruction into arbitrary command execution. ### Attack Path 1. A user or automation agent follows the documented Linux setup procedure. 2. `curl` requests the remote installer and follows any HTTP redirects. 3. The response body is passed immediately to `sh`, without being saved or verified. 4. A compromised or malicious response supplies arbitrary shell commands. 5. Those commands execute with all permissions available to the invoking user. 6. The payload could then read or modify accessible files and credentials, alter the development environment, install persistence, or tamper with subsequent deployments. ### Impact Assessment Successful exploitation provides arbitrary command execution unde ...[truncated 589 chars]
- Remediation
- ## Remediation Suggestions - Remove the direct `curl | sh` installation command. - Prefer an official operating-system package repository or another package manager that authenticates packages and supports pinned versions. - If a release artifact must be installed manually: 1. Pin an explicit `flyctl` version. 2. Download the artifact to a local file rather than piping it into a shell. 3. Restrict redirects to documented, trusted destinations. 4. Verify the publisher's cryptographic signature or a trusted, version-specific SHA-256 checksum. 5. Extract or execute the artifact only after verification succeeds. - Present installation commands to the user and require explicit confirmation before execution. - Document the files, directories, and permissions the installation is expected to modify. - Run installation with an unprivileged account unless a narrowly scoped privileged operation is explicitly required.
