T03 · Remote Payload Retrieval and Execution
- Location
scripts/build.sh:12- Finding
Remote Rust Installer Is Recommended Through a Direct Network-to-Shell Pipeline
- Content
View full analysis
/dev/null; then echo "❌ Rust toolchain not found. Install via: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh" exit 1 fi ``` ### Technical Analysis When Cargo is unavailable, the build script prints an actionable command that downloads mutable content from `https://sh.rustup.rs` and immediately passes it to a shell. The build script does not execute this command automatically, and the domain is the conventional Rust installer endpoint. Nevertheless, the recommended procedure creates a direct remote-code-execution channel without artifact pinning, checksum validation, signature verification, or an inspection step. TLS options protect the connection in transit but do not make the retrieved payload immutable. Compromise of the remote service, its delivery infrastructure, DNS resolution, or a trusted certificate authority could change the code executed after the Skill has been reviewed. This behavior exceeds the minimum privilege necessary to explain that Rust is required. The Skill can instead direct users to official installation documentation or provide a verifiable, staged installation procedure. ### Attack Path 1. A user invokes `scripts/build.sh` on a system where Cargo is not installed. 2. The script displays the `curl ... | sh` installation command. 3. The user copies and executes the suggested command. 4. `curl` retrieves the current response from the external endpoint. 5. The response is passed directly to `sh` without local inspection or cryptographic artifact verification. 6. Any malicious content delivered by the endpoint executes with the permissions of the invoking user. ### Impact Assessment A substituted installer can exe ...[truncated 481 chars]- Remediation
View remediation
