T03 · Remote Payload Retrieval and Execution
Error
- Location
- references/setup.md:153
- Finding
- Remote Poetry Installer Is Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `references/setup.md:153` **Vulnerability Type**: Remote code retrieval followed by immediate interpreter execution **Risk Level**: Critical ### Vulnerable Code ```bash - **"poetry not found"** — Install poetry: `curl -sSL https://install.python-poetry.org | python3 -` ``` ### Technical Analysis The installation instruction pipes bytes received from an external URL directly into the local Python interpreter. The downloaded payload is neither pinned to a specific immutable version nor verified using a cryptographic signature or trusted digest before execution. HTTPS protects the connection in transit but does not guarantee that the upstream content will remain unchanged or uncompromised. The effective code executed by this Skill can therefore change after the Skill package has been reviewed. The remote installer executes with the permissions of the user following the setup instructions. In the expected deployment environment, that account may have access to the Wayfinder configuration, wallet private keys, API credentials, exchange credentials, shell configuration, and other user files. ### Attack Path 1. An attacker compromises the Poetry installation endpoint, its hosting infrastructure, DNS resolution, or a trusted certificate path. 2. The operator follows the documented troubleshooting instruction. 3. `curl` retrieves the attacker-controlled Python payload. 4. The shell passes the response directly to `python3`. 5. The payload executes without an opportunity for integrity verification or inspection. 6. The payload reads local secrets, modifies the SDK, installs persistence, or communicates stolen data to an external service. ### Impact Assessment Successful exploitation provides arbitrary code execution with the privileges of the invoking user. Depending on the deployment, the attacker could: - Read Wayfinder API credentials. - Read plaintext wallet private keys from `config.json`. - Read cent ...[truncated 359 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the `curl | python3` instruction entirely. 2. Prefer installation through a trusted operating-system package manager with signed repository metadata. 3. If direct installation is unavoidable: - Download the installer to a local file. - Pin an immutable installer version. - Verify a publisher-provided cryptographic signature or SHA-256 digest through an independent trusted channel. - Inspect the downloaded file before execution. - Execute it under a minimally privileged account. 4. Do not run the installer from an account that can access production wallet keys. 5. Document the expected installer digest and provenance directly in the Skill. ]]>
