T09 · Insecure Skill Coding Practices
- Location
SKILL.md:21- Finding
Command Injection Through Unvalidated Contract Address Interpolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly purpose-aligned, but it should be reviewed because it tells the agent to run shell curl commands using user-supplied token values without strict validation.
Install only if you are comfortable with the agent contacting third-party crypto data APIs for queried token addresses, and avoid giving malformed or untrusted address strings. A safer version should validate addresses and chain IDs strictly and use a structured HTTP client instead of shell curl.
SKILL.md:21Command Injection Through Unvalidated Contract Address Interpolation
Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.
# Crypto Token Analyzer
Analyze any token given its contract address and chain. Combine live market data, on-chain signals, and security checks, then give a clear subjective judgment and actionable strategy advice. Always respond in the language of the current conversation.
## Supported Chains (default)
The trigger description is overly broad because it activates on vague phrases like 'similar crypto token queries,' which can cause the skill to engage outside its narrowly intended scope. In a financial-analysis skill, over-triggering is risky because it may provide investment-style guidance in contexts where the user did not explicitly request this tool or where another safer workflow should handle the request.
This skill instructs the agent to send user-supplied token addresses to an external third-party API via curl. External transmission can expose sensitive user-supplied inputs, create privacy/logging risks, and allow uncontrolled network access patterns; in an agent setting, direct shell-based HTTP calls also increase the chance of unsafe command construction if interpolation is not tightly controlled.
Prefer API calls via bash + curl for speed and reliability.
curl 'https://api.dexscreener.com/latest/dex/tokens/{tokenAddress}'
curl 'https://api.dexscreener.com/latest/dex/pairs/v1/{chainId}/{tokenAddress}'
A second external API path is defined for pair lookup using user-influenced chain and address inputs. While expected for the skill's purpose, it still constitutes outbound transmission to a third party and may amplify risk if the agent automatically fetches data for arbitrary addresses or constructs requests unsafely.
curl 'https://api.dexscreener.com/latest/dex/tokens/{tokenAddress}'
curl 'https://api.dexscreener.com/latest/dex/pairs/v1/{chainId}/{tokenAddress}'
priceUsd, priceChange (m5/h1/h6/h24), volume, liquidity, fdv, marketCap, pairCreatedAt, txs (buys/sells), labels, info (socials, websites), boost.The GoPlus security check sends the queried contract address to another external service, creating the same privacy and outbound-communication concerns as the DexScreener calls. Because this skill is designed to fetch live token risk data, the behavior is contextually expected, but it still expands the attack surface and may expose user interest patterns or permit unsafe request building if implemented via shell interpolation.
GoPlus (free public endpoint, no key required for basic):
curl 'https://api.gopluslabs.io/api/v1/token_security/{goplusChain_id}?contract_addresses={address}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
GET /latest/dex/tokens/{tokenAddress}
```bash
curl -s "https://api.dexscreener.com/latest/dex/tokens/0x..."
No suspicious patterns detected.