T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:53
- Finding
- Remote Installer Is Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:53-58` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```markdown **uv** is Astral's Python package manager and project runner (https://docs.astral.sh/uv/). It replaces pip, venv, and pip-tools. Install it with: - macOS (recommended): `brew install astral-sh/tap/uv` - pip/pipx: `pipx install uv` - Linux/macOS (alternative): `curl -LsSf https://astral.sh/uv/install.sh | sh` (review the script at https://astral.sh/uv/install.sh before running) After installing uv, run `uv sync` in the skill directory to install all Python dependencies. Then run `uv run playwright install chromium` to set up the headless browser for extraction. ``` ### Technical Analysis The installation command pipes data downloaded from an external URL directly into a shell. The retrieved script is mutable after the Skill has been reviewed, and the command does not pin a version or verify a cryptographic hash or signature. The URL appears to use Astral's official domain, and the documentation advises users to review the script. However, that warning does not enforce review or integrity verification. The remote endpoint, DNS/TLS trust chain, hosting account, or upstream release process could be compromised. This execution method is not necessary for the Skill's declared content-generation functionality because package-manager and verified-download alternatives are available. ### Attack Path 1. An attacker compromises the remote installer endpoint, its hosting infrastructure, or a relevant delivery dependency. 2. The attacker modifies the installer to include arbitrary shell commands. 3. A user follows the documented `curl ... | sh` installation instruction. 4. The shell immediately executes the modified payload without showing or verifying the downloaded file. 5. The payload operates with all permissions available to the user running the command. ### Impact Assess ...[truncated 471 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the pipe-to-shell installation option. - Prefer a trusted platform package manager with a pinned package version. - If a standalone installer is required, download it as a separate file, pin its versioned URL, and verify its vendor-published cryptographic checksum or signature before execution. - Display the downloaded file for local review rather than relying on an advisory comment. - Document that installation must occur as an unprivileged user. - Commit and enforce a lockfile for subsequent Python dependency installation. ]]>
