T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:142- Finding
Remote Poetry Installer Is Downloaded and Executed Without Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 142
Vulnerability Type: Remote payload retrieval and immediate execution
Risk Level: CriticalComplete Vulnerable Code Snippet:
bash curl -sSL https://install.python-poetry.org | python3 -Technical Analysis
The troubleshooting instructions pipe the response from a mutable external URL directly into the local Python interpreter. The downloaded program is not pinned to a specific version, saved for inspection, or checked against a cryptographic signature or trusted checksum.
Although the URL appears to be Poetry's official installation endpoint, this pattern makes the code executed on the user's machine dependent on whatever the remote endpoint returns at execution time. Compromise of the hosting infrastructure, publishing process, DNS resolution, or TLS trust chain could therefore turn the installer into an arbitrary payload after the Skill has already passed review.
Immediate execution also prevents the user from inspecting the effective payload before it runs. Installing Poetry this way is not demonstrated to be necessary for the Skill's declared single-task execution and wallet-balance-query functionality.
Attack Path
- A user encounters the documented
poetry not foundcondition. - The user copies and runs the recommended command.
curlretrieves the current response from the external installation endpoint.- A compromised endpoint or delivery chain returns attacker-controlled Python code.
- The shell passes that response directly to
python3. - The payload executes with the permissions of the invoking user.
- The payload can inspect or modify files available to that user, including project configuration,
.envcredentials, API keys, OAuth material, and locally accessible wallet data.
Impact Assessment
Successful exploitation provides arbitrary code execution under the invoking user's account. The reachab ...[truncated 462 chars]
- A user encounters the documented
- Remediation
View remediation
Remediation Suggestions
- Remove the direct download-to-interpreter pipeline.
- Prefer Poetry packages supplied by a trusted operating-system package manager or an internally controlled artifact repository.
- If the upstream installer must be used, pin an explicitly reviewed installer version or immutable artifact.
- Download the installer as a separate file without executing it:
bash curl --fail --show-error --location --output install-poetry.py \ https://install.python-poetry.org - Verify a publisher-provided cryptographic signature or a trusted, version-specific SHA-256 checksum before execution.
- Inspect the downloaded file and execute it only after successful verification.
- Run installation with a non-privileged account and restrict access to
.env, wallet files, and authentication tokens during installation. - Document the exact Poetry version required and explain why Poetry is necessary for the declared functionality.
