T06 · System Persistence
- Location
references/setup-cron.md:15- Finding
Persistent Autonomous Execution Through Cron and Heartbeat Scheduling
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:55-59,references/setup-cron.md:15-55, andreferences/setup-heartbeat.md:17-47
Vulnerability Type: Persistent scheduled task creation
Risk Level: MediumThe project directs users to configure recurring cron jobs or heartbeat instructions that autonomously invoke the externally installed
open-thoughtsSkill.Relevant code from
references/setup-cron.md:15-23:bash openclaw cron add \ --name "daily-thinking" \ --cron "0 10 * * *" \ --tz "America/Chicago" \ --session isolated \ --message "/open-thoughts length=600"Additional recurring schedules from
references/setup-cron.md:28-55:bash openclaw cron add \ --name "thinking-time" \ --cron "0 10 * * 1,4" \ --tz "America/Chicago" \ --session isolated \ --message "/open-thoughts length=600"bash openclaw cron add \ --name "explore" \ --cron "0 8,14,20 * * *" \ --tz "America/Chicago" \ --session isolated \ --message "/open-thoughts"bash openclaw cron add \ --name "weekly-reflection" \ --cron "0 9 * * 0" \ --tz "America/Chicago" \ --session isolated \ --message "/open-thoughts topic='reflect on this week' length=600"Heartbeat configuration from
references/setup-heartbeat.md:17-47:json { "agents": { "defaults": { "heartbeat": { "every": "2h" } } } }markdown ## Exploration Window Every heartbeat, check the following before exploring: 1. Is it during waking hours? (Only explore between 8 AM and 9 PM in your person's timezone.) 2. Have you already explored in the last few hours? Check `explorations/YYYY-MM-DD.md` for today's entries. 3. Is anyone waiting for a response? If so, respond first. If all clear, invoke `/open-thoughts` with no arguments (free exploration). If someone messages during explorati ...[truncated 2192 chars]- Remediation
View remediation
Remediation Suggestions
- Make manual, one-shot invocation the default and present recurring scheduling as an explicit opt-in feature.
- Require clear confirmation before creating any cron job or modifying
HEARTBEAT.md. - Pin and verify the scheduled Skill before enabling autonomous execution.
- Run scheduled sessions with the minimum required workspace and tool permissions.
- Apply execution-frequency, token-budget, duration, and filesystem-write limits.
- Record each autonomous invocation in an auditable log and notify the user of failures or unexpected behavior.
- Place the corresponding removal command next to every creation example:
bash openclaw cron list openclaw cron remove <id> - Document how to disable the heartbeat block and periodically review all active scheduled jobs.
