T06 · System Persistence
- Location
clawhub.json:7- Finding
Unattended Scheduled Live Trading Creates Persistent Financial Side Effects
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This trading skill can run live trades automatically on a schedule using a required API key, with under-disclosed risk controls.
Install only if you intentionally want recurring automated live trading. Use a narrowly scoped, revocable SIMMER_API_KEY with account-side spending limits, verify or disable the cron/--live automation, and prefer dry-run mode until the dependency pinning, live-trade confirmation, fail-closed safeguards, and cumulative loss limits are improved.
clawhub.json:7Unattended Scheduled Live Trading Creates Persistent Financial Side Effects
strategy.py:353Trading Safeguard Fails Open When Context Validation Is Unavailable
clawhub.json:3Unpinned Third-Party SDK Executes In Process with Access to the Trading Credential
The description says 'No API keys required' and frames the skill as reading public Solana/Jupiter signals, but the skill also requires a Simmer API key and can execute authenticated trades. This mismatch can mislead users and automated policy systems about the true capabilities of the skill, increasing the chance of unintended secret exposure or real-money actions under incomplete consent.
The manifest explicitly requires a SIMMER_API_KEY while the skill description claims that no API keys are required. This discrepancy is a supply-chain trust and transparency issue: users may install or run the skill under false assumptions and expose a sensitive credential to code they would not otherwise trust. In an agent/automation context, unnecessary secret collection increases the blast radius if the skill is compromised or behaves unexpectedly.
The skill advertises network access, environment-variable use, and live trading behavior but does not declare any explicit tool scope or permissions. In an agent ecosystem, missing scope declarations weakens user visibility and policy enforcement, making it easier for a skill to access secrets or external services without clear consent boundaries.
The usage section presents a '--live' command for real trading without a prominent warning about financial loss, irreversible execution, or the need for explicit user confirmation. In a trading skill, this omission increases the risk of accidental live orders and makes the context more dangerous because the documented purpose is market execution, not just analysis.
The module docstring and manifest emphasize that the skill operates from free public Solana/Jupiter data with 'No API keys required.' However, the actual trading path exits unless SIMMER_API_KEY is present and uses SimmerClient to place trades. While market data collection is keyless, the end-to-end skill behavior for live trading is not.
The docstring's usage example implies '--set max_position_usd=50' configures the run. In code, MAX_POSITION_USD, MAX_TRADES_PER_RUN, and SIGNAL_THRESHOLD are initialized at import time from the environment, and the --set handler mutates os.environ only later in main. As a result, the current process continues using the old already-cached values, contradicting the advertised behavior.
Live mode can place real trades immediately when invoked with --live, with no secondary confirmation, no interactive acknowledgment, and no explicit high-visibility risk prompt. In a financial-trading skill, that increases the chance of accidental execution from user error, automation misuse, or misunderstood CLI invocation, causing direct monetary loss.