T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:101- Finding
Disclosure and External Registration of Reusable Exchange Credentials
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real trading skill with dry-run code, but its documentation and manifest grant broad automated financial authority that needs careful review before installation.
Review before installing. Use this only in an isolated environment with minimal funds, pinned dependencies, and explicit operator approval for every live trade and token approval. Do not print or store reusable exchange credentials unless you trust the external service and understand its retention, revocation, and custody model. Disable or avoid the managed cron schedule unless recurring execution is intentional.
SKILL.md:101Disclosure and External Registration of Reusable Exchange Credentials
SKILL.md:190Automatic On-Chain Token Approval Without Explicit User Authorization
clawhub.json:32Managed Recurring Execution Enabled by Default
clawhub.json:5Unpinned and Inconsistent Trading SDK Dependencies
The documentation directs the agent to automatically verify balances, allowances, and to send approval transactions automatically when needed. Automatic approvals and live trading actions can authorize asset movement or enable future exchange spending without a distinct user acknowledgment, which is especially risky in a financial skill handling wallet credentials.
The file claims dry-run-by-default behavior requiring explicit live execution, but the later default execution policy says to prefer market mode and place orders without blocking on extra confirmation. That contradiction can cause an agent or operator to assume simulation-only behavior while the documented policy enables live order placement, creating a direct financial-loss risk.
The documented default policy allows orders to be placed without extra confirmation and emphasizes reporting final parameters after the fact. In a trading context, that removes a critical human checkpoint before irreversible market actions and materially raises the risk of unintended or manipulated live trades.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SKILL_SLUG = "aionmarket-trading"
TRADE_SOURCE = f"sdk:{SKILL_SLUG}"
ENV_PATH = Path(__file__).with_name(".env")
def load_env() -> None:
The skill documents use of environment-provided secrets such as API keys and wallet private keys, but the manifest declares no explicit tool scope or permissions boundary. That mismatch increases the chance an agent can access sensitive environment variables without operators realizing the skill needs secret material, which weakens review and containment.
The skill is presented as a narrow divergence trader, but it also includes wallet bootstrap and account-management workflows beyond simple trade execution. This scope expansion makes the skill more dangerous because users may approve a trading template while overlooking that it can modify account configuration and credential state.
The skill accepts a specific market and probability input, yet it also documents broad market search, event traversal, and opportunity discovery features. In context, that expands the agent from an execution wrapper into a scanner that can originate trades on markets the user did not explicitly specify, increasing autonomy and risk.
Agent registration, credential bootstrap, and related account lifecycle operations exceed the stated purpose of executing a trade on a provided market and probability estimate. Bundling these powers into a strategy skill unnecessarily broadens the blast radius if the skill is invoked in an automated environment.
The checklist explicitly endorses automatic balance/gas/allowance handling and auto-approval when possible, which is autonomous transaction decision-making. In the context of a wallet-connected trading skill, that autonomy is more dangerous because approval transactions can expand spend authority and may be triggered without granular review.
- [ ] `get_me()` returns valid agent info
- [ ] Polymarket CLOB credentials derived from private key and registered via `register_wallet_credentials()`
- [ ] automatic balance, gas/fees, and allowance checks are part of the trading flow
- [ ] missing allowance is auto-approved when technically possible
- [ ] Risk limits configured via `update_settings()`
- [ ] Heartbeat loop (`get_briefing()`) running or planned
- [ ] Error handling wraps every SDK call with `ApiError`
Detected: suspicious.exposed_secret_literal