T03 · Remote Payload Retrieval and Execution
Error
- Location
- README.md:44
- Finding
- Unverified Remote Installer Is Piped Directly into a Shell<![CDATA[ ## Vulnerability Details **File Location**: `README.md:44` **Vulnerability Type**: Remote payload retrieval and immediate execution **Risk Level**: High ### Vulnerable Code ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` ### Technical Analysis This command retrieves mutable content from an external URL and immediately executes it with the invoking user's shell. It does not provide an opportunity to inspect the installer and does not verify a pinned cryptographic checksum, signature, version, or immutable artifact. TLS protects the connection in transit but does not guarantee that the server, its infrastructure, or the installer content will remain trustworthy. If the remote endpoint or its delivery infrastructure is compromised, arbitrary commands can be supplied and executed. This behavior exceeds the minimum privileges necessary for the Skill itself. The package contains only documentation, the Skill declares Node.js and npm as its required binaries, and `SKILL.md` already provides an npm-based installation method. Installing Rust through an immediately executed remote script is therefore not intrinsically required for normal use of the declared Skill. ### Attack Path 1. A user follows the source-build instructions in `README.md`. 2. The user executes the documented `curl | sh` pipeline. 3. The command downloads the current response from `https://sh.rustup.rs`. 4. The response is passed directly to the local shell without inspection or artifact verification. 5. If the remote service, hosting infrastructure, DNS resolution, certificate authority chain, or distribution process has been compromised, the substituted script executes arbitrary shell commands. 6. Those commands run with all permissions available to the invoking user. ### Impact Assessment Successful exploitation provides arbitrary command execution with the privileges of the user running the installer. This may permit access to user files, credentials av ...[truncated 333 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the direct `curl | sh` installation instruction. - For normal Skill use, retain only the documented Node.js/npm installation path if Rust is not required. - If a Rust source build must be supported, direct users to the official Rust installation documentation rather than executing downloaded content automatically. - Prefer downloading a versioned installer artifact as a separate step. - Require verification using an officially published cryptographic signature or pinned checksum before execution. - Pin the expected installer or toolchain version and document the trusted source. - Instruct users to inspect the downloaded script before running it and to execute it without elevated privileges. ]]>
