T09 · Insecure Skill Coding Practices
- Location
lib/api_client.py:31- Finding
Trading Credentials Are Unnecessarily Sent to Public Analytics Endpoints
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is openly for market analytics and trading, but it can place or cancel real orders without a local confirmation step or strong client-side safeguards.
Review this carefully before installing. Use a small, revocable, least-privilege prob.trade key if available, avoid storing live trading secrets in a shared or backed-up directory, and do not let an agent run order or cancel commands without your explicit review of market, side, amount, price, and order ID.
lib/api_client.py:31Trading Credentials Are Unnecessarily Sent to Public Analytics Endpoints
scripts/probtrade.py:127Financial Orders Lack Local Bounds and Semantic Validation
The README encourages broad natural-language use such as buying, cancelling, and querying positions without describing confirmation gates or requiring explicit command syntax for sensitive actions. In an agent setting, this can lead to unintended activation or misinterpretation of user intent, especially for trading actions tied to real funds.
The setup instructions tell users to store long-lived API credentials in a local config file under the skill directory, which creates a persistent secret on disk. If filesystem permissions, backups, logs, or other local components are compromised, the key could be recovered and used to place trades or access account data.
### Setup
1. Go to [app.prob.trade](https://app.prob.trade) and create an account
2. Navigate to Settings and generate an API key
3. Configure the skill:
The trading section describes real-money buy, sell, and cancel operations but does not clearly warn that these actions can affect live funds and may be irreversible once executed. In an autonomous or semi-autonomous agent environment, omission of such warnings increases the chance that users trigger financially impactful actions without appreciating the risk.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## API
- **Public Analytics API** (no auth): [api.prob.trade/api/public](https://api.prob.trade/api/public/overview) — markets, stats, traders
- **Trading API** (API key + HMAC): [api.prob.trade/api/trading](https://api.prob.trade/api/trading) — orders, positions, balance
## Links
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## API
- **Public Analytics API** (no auth): [api.prob.trade/api/public](https://api.prob.trade/api/public/overview) — markets, stats, traders
- **Trading API** (API key + HMAC): [api.prob.trade/api/trading](https://api.prob.trade/api/trading) — orders, positions, balance
## Links
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## API
- **Public Analytics API** (no auth): [api.prob.trade/api/public](https://api.prob.trade/api/public/overview) — markets, stats, traders
- **Trading API** (API key + HMAC): [api.prob.trade/api/trading](https://api.prob.trade/api/trading) — orders, positions, balance
## Links
The skill declares required environment variables, local config file access, and network use, but does not explicitly scope or constrain those capabilities with permissions or allowed-tools metadata. In an agent context, this weakens least-privilege controls and makes it easier for the skill to access secrets and perform external requests without clear policy boundaries.
The skill documents live trading and order-cancellation commands but does not clearly warn that these actions can execute real financial transactions. In an AI-agent workflow, users or downstream agents may invoke these commands as if they were read-only analytics, causing unintended trades, losses, or cancellation of active orders.
The skill exposes live trading operations (order and cancel) that execute immediately once invoked, with no confirmation prompt, dry-run mode, or secondary approval step. In a tool designed for financial trading, this increases the risk of accidental or manipulated order placement/cancellation through user error, prompt injection in higher-level agents, or misuse of delegated automation.
No suspicious patterns detected.