T06 · System Persistence
- Location
README.md:277- Finding
Recurring Cron Jobs Enable Unattended Cross-Session Agent Execution
- Content
View full analysis
Vulnerability Details
File Location:
README.md:277-308
Vulnerability Type:T06: System Persistence
Risk Level: HighVulnerable Code
bash openclaw cron add \ --name "Daily Progress Report" \ --cron "0 22 * * *" \ --tz "America/Vancouver" \ --session isolated \ --message "Generate daily progress report. Read tasks/QUEUE.md for completed tasks. Summarize: completed, in progress, blockers, tomorrow's plan." openclaw cron add \ --name "Morning Kickoff" \ --cron "0 7 * * *" \ --tz "America/Vancouver" \ --session main \ --system-event "Morning kickoff: Review task queue, pick top priorities, spawn team members for parallel work." \ --wake now openclaw cron add \ --name "Overnight Work" \ --cron "0 3 * * *" \ --tz "America/Vancouver" \ --session isolated \ --message "Overnight work session. Pull tasks from queue that don't need human input. Do research, writing, or analysis. Log progress."The intended unattended behavior is also stated in
SKILL.md:17-20:markdown 1. Create `tasks/QUEUE.md` with Ready/In Progress/Blocked/Done sections 2. Update `HEARTBEAT.md` to pull from queue and do work 3. Set up cron jobs for overnight work and daily reports 4. Watch work happen without promptingTechnical Analysis
The setup instructions register three recurring scheduled jobs. These jobs persist after the initial installation interaction and invoke agent sessions without a new user prompt. One job wakes the main session and instructs it to spawn additional agents, while the others start isolated sessions that read task state and perform work.
Scheduled execution is especially sensitive because the effective work is selected later from mutable files such as
tasks/QUEUE.md. The documentation does not require contemporaneous approval, validate task provenance, constrain the tools available to scheduled sessions, or define a safe ac ...[truncated 1129 chars]- Remediation
View remediation
Remediation Suggestions
- Do not install recurring jobs by default.
- Require explicit confirmation for each schedule and each unattended execution mode.
- Prefer one-shot jobs with a short expiration period over indefinite recurring schedules.
- Run scheduled sessions with a dedicated least-privilege identity and restricted filesystem, network, messaging, and agent-spawning permissions.
- Restrict scheduled work to a predefined allowlist of read-only or otherwise low-risk actions.
- Require fresh approval before executing tasks involving external communication, secrets, code execution, production systems, privilege changes, or persistent configuration.
- Record the creator, creation time, approved purpose, and last execution for every job.
- Document commands for listing, disabling, and permanently removing all jobs created by the kit.
- Prevent scheduled sessions from spawning additional agents unless separately authorized.
