T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:32- Finding
Mutable Remote Executable Retrieved Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:32-41; duplicated inREADME.md:34-43
Vulnerability Type: Remote payload retrieval and execution
Risk Level: MediumComplete Code Snippet:
bash ## Install # Requires Python 3.8+. No pip install needed. curl -O https://raw.githubusercontent.com/itsPremkumar/polymarket-cli/main/polymarket_cli.py # Or copy the file anywhere — it's self-contained. ## Quick start python polymarket_cli.py --help # list optionsTechnical Analysis
The documented installation process downloads a Python executable from the mutable
mainbranch of a personal GitHub repository and subsequently instructs the user to execute it. The command does not pin the download to a reviewed commit or immutable release and performs no checksum or signature verification.Consequently, the code ultimately executed by users can differ from the version included in and reviewed with this Skill package. HTTPS protects the connection in transit but does not protect users against repository compromise, maintainer account takeover, malicious upstream changes, or an unsafe future update.
Retrieving live public market data is necessary for the declared functionality, but retrieving a replacement executable is not necessary because an audited copy of
polymarket_cli.pyis already bundled in the project. This installation method therefore exceeds the minimum network access required for the Skill.No evidence was found that the currently bundled script contains a malicious payload. The risk arises from allowing the effective executable payload to change after review.
Attack Path
- An attacker compromises the upstream maintainer account or obtains write access to
itsPremkumar/polymarket-cli. - The attacker replaces or modifies
polymarket_cli.pyon themainbranch. - A user follows the installation instructions and downloads the attacker-controlled version through the ...[truncated 838 chars]
- An attacker compromises the upstream maintainer account or obtains write access to
- Remediation
View remediation
Remediation Suggestions
- Prefer execution of the audited
polymarket_cli.pyalready bundled with the Skill rather than downloading another copy. - If remote installation must remain supported, pin the URL to a reviewed commit hash or an immutable, versioned release artifact instead of
main. - Publish a SHA-256 digest through an independently protected release channel and require users to verify it before execution.
- Consider signing release artifacts and documenting signature verification using a maintained signing key.
- Update both
SKILL.mdandREADME.mdso their installation instructions remain consistent. - Add CI checks that reject executable download URLs referencing mutable branches and require integrity metadata for remote artifacts.
- Clearly disclose the exact network destinations used at runtime. The bundled program otherwise appears limited to read-only HTTPS requests to the fixed Polymarket API origin.
- Prefer execution of the audited
