T06 · System Persistence
Error
- Location
- SKILL.md:244
- Finding
- Persistent Unattended Wallet Transactions Through Scheduled Automation## Vulnerability Details **File Location**: `SKILL.md:244-271` **Vulnerability Type**: Persistent scheduled financial automation **Risk Level**: High ### Vulnerable Code ```markdown ### OpenClaw Cron Configuration Schedule `las auto` every 5 minutes (half of 10-minute epoch) to ensure you never miss a heartbeat: ```json { "cron": [ { "schedule": "*/5 * * * *", "sessionTarget": "isolated", "payload": { "kind": "agentTurn", "message": "Run: las auto" } } ] } ``` ### Tuning the schedule Run at **half the epoch duration** to guarantee at least one heartbeat per epoch: | Epoch Duration | Recommended Cron | Schedule | |---|---|---| | 10 min | Every 5 min | `*/5 * * * *` | | 30 min | Every 15 min | `*/15 * * * *` | | 1 hour | Every 30 min | `*/30 * * * *` | ``` ### Technical Analysis The Skill instructs the user or agent to configure a cross-session scheduled task that invokes `las auto` every five minutes. According to the preceding automation description, this command can submit a paid heartbeat and execute kill and claim transactions using the configured self-custodial wallet. Once configured, the task continues operating outside the interaction that initiated it. Individual blockchain transactions are not subject to fresh human approval. Because the invoked CLI also depends on externally supplied code and has access to wallet-signing authority, any later compromise or behavioral change can be exercised repeatedly by the scheduler. ### Attack Path 1. The user follows the Skill's OpenClaw cron configuration. 2. A persistent scheduled task is created with a five-minute interval. 3. The scheduler invokes `las auto` in isolated agent sessions. 4. The command accesses the wallet configuration and signs blockchain transactions. 5. Heartbeat payments and gas expenditures continue without transaction-by-transaction approval. 6. If the CLI or its transaction targets become malicious or compromised, the schedule ...[truncated 548 chars]
- Remediation
- ## Remediation Suggestions - Do not recommend installing an indefinite scheduled task by default. - Require explicit human authorization before each transaction that transfers tokens, grants approval, or consumes meaningful gas. - If automation is necessary, make it disabled by default and require an explicit expiration time. - Use a dedicated low-value wallet with strict funding limits instead of a general-purpose wallet. - Enforce per-transaction and cumulative daily spending limits. - Simulate each transaction and validate its chain, destination contract, function selector, token amount, and maximum gas before signing. - Pin and verify the executable used by the scheduled task. - Provide documented commands for listing, pausing, and permanently removing the scheduled task. - Notify the wallet owner after every submitted transaction and automatically stop execution after repeated failures or unexpected transaction requests.
