T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:58
- Finding
- Unverified Remote Installation Script Piped Directly to a Shell<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:55-58`; `scripts/docker_osx.py:29-35` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code `SKILL.md:55-58`: ```markdown | Error | Fix | |-------|-----| | KVM not available | Server needs hardware virtualization | | Docker not installed | `curl -sSL get.docker.com | sh` | ``` `scripts/docker_osx.py:29-35`: ```python if not check_docker(): return { 'success': False, 'error': 'Docker not installed. Install with: curl -sSL get.docker.com | sh' } ``` ### Technical Analysis The documentation and runtime error instruct users to download a mutable remote response and immediately execute it with `sh`. The content is not inspected, pinned to a version, checked against a cryptographic digest, or verified using a digital signature. The Python program does not automatically execute this command. Exploitation therefore requires a user or automation layer to follow the displayed instruction. Nevertheless, piping a remote response directly into a shell establishes a code-execution channel whose effective payload can change after this Skill has been reviewed. Although `get.docker.com` is associated with Docker's convenience installation script, reliance on the current content of a remote endpoint introduces supply-chain and delivery-path risk. Installing Docker can also modify package repositories, install system packages and services, and commonly requires root or `sudo` privileges. This exceeds the minimum privileges needed by the Skill itself because its metadata already declares Docker as a prerequisite. ### Attack Path 1. A user invokes the Skill on a host where Docker is unavailable. 2. The Skill returns the `curl -sSL get.docker.com | sh` installation instruction. 3. The user executes the instruction, potentially through a privileged shell. 4. `curl` retrieves whatever content the remote endpoint supplies at that time. ...[truncated 855 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the `curl | sh` command from both the documentation and runtime error. - Continue treating Docker as a prerequisite, as already specified by the Skill metadata. - Direct users to Docker's official, platform-specific installation documentation over HTTPS. - If command-line installation instructions are necessary, use the operating system's trusted package manager and document repository-signing-key verification. - Pin downloaded installation artifacts to a reviewed version and verify a published cryptographic checksum or signature before execution. - Download scripts to a local file for inspection rather than streaming them directly into a shell. - Clearly state when installation requires administrative privileges and require explicit user approval before any privileged system modification. ]]>
