T03 · Remote Payload Retrieval and Execution
- Location
scripts/install.sh:66- Finding
Unverified Remote Installer Scripts Are Executed Directly by the Shell
- Content
View full analysis
Vulnerability Details
File Location:
scripts/install.sh:66,scripts/install.sh:282; also recommended inSKILL.md:55,SKILL.md:161,README.md:21, andREADME.md:120
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable Code
scripts/install.sh:66:bash curl -LsSf https://astral.sh/uv/install.sh | shscripts/install.sh:282:bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -yThe same unsafe installation pattern is presented to users in the documentation:
bash # SKILL.md:55 and README.md:21 curl -LsSf https://astral.sh/uv/install.sh | sh # SKILL.md:161 and README.md:120 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shTechnical Analysis
The installation workflow downloads mutable content from external URLs and immediately passes it to a shell. The content is not pinned to a version, saved for inspection, authenticated with a publisher signature, or checked against a known cryptographic digest.
HTTPS provides transport protection but does not establish that the retrieved script is the exact version reviewed with this Skill. An upstream compromise, malicious release, compromised hosting environment, or unexpected future modification could therefore change the effective code executed by the installer.
Installing
uvand Rust may support the declared build process, but direct remote-to-shell execution is not necessary and does not follow least-risk installation practices. The Rust command additionally accepts unattended installation with-y, reducing the opportunity for user review.Attack Path
- An attacker compromises an upstream installer, its hosting infrastructure, or the associated release process.
- The content returned from
astral.sh/uv/install.shorsh.rustup.rsis replaced with attacker-controlled shell commands. - A user runs
scripts/install.sh...[truncated 962 chars]
- Remediation
View remediation
Remediation Suggestions
- Do not pipe downloaded content directly into a shell.
- Pin each installer or release artifact to a specific immutable version.
- Download the artifact to a newly created private temporary directory.
- Verify a publisher signature or a hardcoded SHA-256 digest obtained through an independent trusted channel.
- Display or otherwise make the verified script available for inspection before execution.
- Prefer trusted operating-system package managers where supported.
- Avoid unattended flags unless they are essential and clearly disclosed.
- Update
README.mdandSKILL.mdso the manual instructions use the same verified procedure. - Explicitly warn users not to run the installer as root or through
sudo.
