T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:56- Finding
Mutable remote installer scripts are piped directly into a shell
- Content
View full analysis
- Remediation
View remediation
' /tmp/rustup-init.sh | sha256sum --check less /tmp/rustup-init.sh sh /tmp/rustup-init.sh -y ``` The expected digest must come from a separately authenticated, version-specific source and must not be downloaded from the same mutable endpoint without signature validation. 3. **Prefer trusted package managers or prebuilt packages.** For users who only need NautilusTrader, recommend installation into an isolated virtual environment with a pinned package version. Do not require a Rust compiler unless a source build is actually requested. 4. **Check before installing.** Test whether `rustc`, `clang`, and `uv` already exist. Installation must be conditional and separately authorized. 5. **Require explicit user confirmation for system changes.** Never automatically execute `sudo apt-get`. Present the required package and rationale, then ask the user to approve the system-wide modification. 6. **Pin all relevant versions.** Pin NautilusTrader, uv, Rust toolchain, and source repository revisions to reviewed versions or commit hashes. Use lockfiles and hash-verified dependency resolution where supported. 7. **Separate usage from development setup.** Make the minimal PyPI installation the default path. Place source compilation and toolchain installation in an explicitly selected development section. 8. **Apply least privilege.** Run installation and builds in a disposable virtual environment or container without production exchange credentials. Do not expose ...[truncated 289 chars]
