T08 · Insecure Dependencies
- Location
SKILL.md:58- Finding
Unpinned Third-Party Package Installation Exposes Wallet-Backed Operations to Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:58,SKILL.md:167,references/api.md:5, andscripts/validate_params.sh:8
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumComplete Code Snippets
SKILL.md:57-58:bash pip install sports-skills[polymarket]SKILL.md:166-167:text Solution: Run `pip install sports-skills[polymarket]` and set `POLYMARKET_PRIVATE_KEY` environment variablereferences/api.md:5:markdown - **py_clob_client** (Python SDK): Trading operations (create/cancel orders, view trades). Requires `pip install sports-skills[polymarket]` and a wallet private key. No CLI binary needed.scripts/validate_params.sh:6-9:bash TRADING_COMMANDS="create_order market_order cancel_order cancel_all_orders get_orders get_user_trades" if echo "$TRADING_COMMANDS" | grep -qw "$COMMAND"; then echo "WARNING: $COMMAND requires py_clob_client and a wallet. Install with: pip install sports-skills[polymarket]. Set POLYMARKET_PRIVATE_KEY=0x... in .env or call configure(private_key=...)." fiTechnical Analysis
The project repeatedly instructs users to install
sports-skills[polymarket]without pinning a reviewed version, verifying package hashes, or providing a dependency lockfile. Consequently, the resolved package and its transitive dependencies may change after this Skill has been reviewed.Python package installation can execute package-controlled build logic, while installed package code executes with the privileges of the invoking user. The risk is elevated because the documented trading workflow places a wallet private key in
POLYMARKET_PRIVATE_KEYor passes it toconfigure(private_key=...). The implementation that handles that key is not included in the audited project, so its behavior could not be verified.This finding does not establish that the current package is malicious. It establishes that ...[truncated 1552 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
sports-skillsto a specifically reviewed version, for example:bash python -m pip install 'sports-skills[polymarket]==<reviewed-version>' - Publish a lockfile or constraints file that pins all transitive dependencies.
- Require package hash verification using
--require-hashesand hashes obtained through a trusted release process. - Document the package's authoritative registry entry, source repository, maintainer identity, and release-signing or provenance information.
- Audit the exact
sports-skillsandpy_clob_clientversions responsible for private-key handling before recommending wallet-backed operations. - Install and run trading functionality in an isolated virtual environment or container under a non-privileged account.
- Avoid exposing a high-value wallet key broadly through the process environment. Use a dedicated, least-privileged trading wallet with limited funds and securely managed credentials.
- Add dependency vulnerability and provenance checks to the release process, and require explicit review before updating pinned versions.
- Pin
