T09 · Insecure Skill Coding Practices
- Location
scripts/copy_trader.py:42- Finding
Unnecessary transmission of a deterministic private-key-derived identifier
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Polymarket trading skill asks for a wallet private key and advertises automatic trading/redeeming that the code does not actually implement.
Review carefully before installing. Do not provide a real funded wallet private key to this skill as written, and do not rely on it for automatic copy trading or redemption. If experimenting, use dry-run behavior only, use a separate low-risk wallet/address, and expect local logs plus repeated network calls to Polymarket and Polygon endpoints.
scripts/copy_trader.py:42Unnecessary transmission of a deterministic private-key-derived identifier
The skill says 'No API keys needed' while instructing the user to export a POLYMARKET_KEY private key, which is materially more sensitive than an API key. This mismatch can cause users to underestimate the sensitivity of the credential they are providing, increasing the chance of secret compromise and unauthorized trading if the key is mishandled by the skill or runtime.
The skill says 'No API keys needed' while instructing the user to export a POLYMARKET_KEY private key, which is materially more sensitive than an API key. This mismatch can cause users to underestimate the sensitivity of the credential they are providing, increasing the chance of secret compromise and unauthorized trading if the key is mishandled by the skill or runtime.
The skill says 'No API keys needed' while instructing the user to export a POLYMARKET_KEY private key, which is materially more sensitive than an API key. This mismatch can cause users to underestimate the sensitivity of the credential they are providing, increasing the chance of secret compromise and unauthorized trading if the key is mishandled by the skill or runtime.
The skill advertises operational capabilities that would require access to environment variables, files, and the network, but it does not declare any explicit tool scope or permissions boundaries. In a trading skill that handles a private key and automation, missing scope declarations increases the risk of overbroad access, secret exposure, or unintended file/network operations if the skill is executed in a permissive runtime.
The top-level documentation states that the script will copy trades automatically, but the operational code does not perform live execution. In a trading skill, misleading capability claims can directly influence user behavior, causing them to rely on nonexistent automation, hedging, or risk controls while real trades never occur.
The skill metadata and CLI suggest it can automatically mirror trades, but in live mode the code explicitly refuses to execute and only logs a placeholder. In a financial trading context, this is a security-relevant integrity issue because users may enable what they believe is automated execution and make risk decisions based on false assumptions about market participation and protection.
This code persists trade-related state to state.json and appends runtime details to trades.log, but there is no confirmation prompt or broader user-facing warning that local files containing activity data will be created and updated. For a code file, local file writes that store user-relevant data should have some visible disclosure unless clearly communicated elsewhere.
No suspicious patterns detected.