T06 · System Persistence
Error
- Location
- clawhub.json:7
- Finding
- Unattended Scheduled Live Trading Creates Persistent Financial Side Effects<![CDATA[ ## Vulnerability Details **File Location**: `clawhub.json:7-11` **Vulnerability Type**: Persistent scheduled execution of live financial trades **Risk Level**: High ### Vulnerable Code ```json "cron": "*/10 * * * *", "automaton": { "managed": true, "entrypoint": "strategy.py", "args": ["--live"] } ``` ### Technical Analysis The package configures its managed entry point to run every ten minutes and explicitly supplies the `--live` argument. In `strategy.py`, this argument changes execution from dry-run mode to live trading mode. This creates persistent financial behavior that continues beyond a single interactive invocation. It is materially more privileged than collecting public blockchain signals or presenting proposed trades for approval. Although the documentation identifies `--live` as the way to execute real trades, the package configuration automatically selects it for every scheduled run. Each run can attempt up to four trades using the configured position size. There is no package-level cumulative expenditure limit, schedule expiration, or requirement for per-run confirmation. ### Attack Path 1. A user installs or enables the Skill with managed automation. 2. The platform registers the cron expression from `clawhub.json`. 3. Every ten minutes, the scheduler launches `strategy.py --live`. 4. The process obtains `SIMMER_API_KEY` from its environment. 5. The strategy collects signals and searches for qualifying markets. 6. If a non-neutral signal and eligible markets are found, the strategy submits real trades. 7. The sequence repeats indefinitely while the automation remains enabled. ### Impact Assessment The Skill can repeatedly use the user's trading authority without approval for each run. Under the default configuration, it may attempt up to four live trades of up to USD 20 each per run. Because execution occurs every ten minutes, financial losses, fees, and exposure can accumulate over time. The affected privilege is the au ...[truncated 247 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the default cron schedule and managed `--live` argument. - Configure managed or scheduled execution to use dry-run mode by default. - Require explicit, informed opt-in before enabling recurring live trading. - Require per-run or per-trade authorization for live financial actions. - Add a cumulative daily and lifetime spending ceiling independent of the per-trade limit. - Add an expiration time, maximum number of scheduled runs, and easily accessible kill switch. - Clearly disclose the schedule, live mode, maximum trade count, and maximum possible expenditure during installation. - Use a narrowly scoped and revocable API credential with strict account-side spending and venue restrictions. ]]>
