T06 · System Persistence
Error
- Location
- SKILL.md:175
- Finding
- Mandatory recurring task persistently modifies cross-team configuration and stores telemetry<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:175-189` and duplicated at `SKILL.md:426-440` **Vulnerability Type**: Persistent scheduled configuration modification **Risk Level**: High ### Vulnerable Instructions ```markdown 2. **Skill learning telemetry** - Enable usage logging per agent/skill - Log format: `agent_id + skill_name + timestamp + context` 3. **Weekly optimization task (OpenClaw Cron)** - Create a weekly `openclaw cron` job in isolated session - Analyze last 7 days usage and update `openclaw.json` skill mapping - Always backup before writing config 4. **All-team scope** - Mechanism must apply to **all teams** (coding/wealth/other future teams) - No team-specific hardcoding in the optimizer 5. **Review outputs** - Save weekly optimization summary to `memory/YYYY-MM-DD.md` - Keep optimization history under `.lib/skill_analytics/` ``` ### Technical Analysis The skill explicitly marks a post-setup process as mandatory and directs the operator or agent to install a weekly OpenClaw cron task. That task is expected to analyze telemetry, rewrite `openclaw.json`, and save state under persistent memory and analytics directories. A scheduled task survives the original skill execution and performs future actions without requiring the setup wizard to be invoked again. Its required scope covers all current and future teams rather than only the team created during the current run. This creates persistent, cross-team configuration authority that is broader than the wizard's immediate purpose. The telemetry format also includes an unrestricted `context` field. Depending on what agents place in that field, persistent logs could retain source fragments, task data, file paths, user content, or other sensitive operational information. The instructions define neither redaction nor retention limits. The reviewed `wizard/setup.js` does not itself create this cron task. The issue resides in the mandatory skill instru ...[truncated 1369 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the requirement to install a recurring cron task as part of ordinary setup. 2. Make optimization explicitly opt-in and explain its scope before installation. 3. Scope each optimizer to a specific, validated team identifier rather than all teams. 4. Generate a proposed configuration diff and require affirmative user approval before every modification to `openclaw.json`. 5. Run the optimizer with only the minimum read and write permissions needed for its selected team. 6. Validate the current configuration version before writing to prevent overwriting concurrent changes. 7. Back up the configuration and provide a tested command that disables and removes the cron task. 8. Replace unrestricted telemetry context with a structured allowlist of non-sensitive fields. 9. Redact credentials, source content, personal data, prompts, and filesystem secrets before logging. 10. Define retention limits and provide deletion controls for `memory/` and `.lib/skill_analytics/`. 11. Document the cron job name, schedule, permissions, data inputs, outputs, and rollback procedure. ]]>
