Back to skill

Security audit

Task Supervisor

Security checks for vulnerabilities and agentic risk

Overview

This skill is a long-task tracker, but it automatically creates persistent task files and scheduled external progress messages with unclear destination and cleanup behavior.

Review before installing. Use this only if you want agents to write task details into `.tasks/` and create recurring OpenClaw cron jobs that send progress or blocker summaries to an external messaging service. Avoid it for sensitive client, credential, incident, legal, or proprietary work unless the reporting channel, consent step, retention, and cleanup behavior are tightened.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T06 · System Persistence

Error
Location
SKILL.md:29
Finding
Persistent Scheduled Progress Reporter with External Data Transmission## Vulnerability Details **File Location**: `SKILL.md`, lines 29–32 and 76–84 **Vulnerability Type**: `T06: System Persistence` **Risk Level**: High **Vulnerable code:** ```markdown When you receive a large task, immediately: 1. **Create a task file** at `.tasks/<TASK-SLUG>.md` (use kebab-case slug) 2. **Decompose** the task into numbered steps 3. **Spawn a reporter cron** to send progress updates 4. **Begin execution**, updating the file after each step ``` ```markdown ## Progress Reporting (Cron) At task start, spawn a cron reporter using `exec`: ```bash openclaw cron add "task-report-<SLUG>" \ --schedule "*/15 * * * *" \ --message "Read .tasks/<SLUG>.md and send a Feishu message to the user with progress update. Include: completed steps, current step, blockers if any. Keep it under 5 sentences. Remove this cron when Status=done or Status=failed." \ --once-complete ``` ``` ### Technical Analysis The skill instructs the agent to execute `openclaw cron add` whenever a task meets its broad definition of a large task. This creates recurring automation that can survive the initiating interaction and continue operating across sessions. The scheduled reporter is directed to read `.tasks/<SLUG>.md`. Under the required task-file format and execution procedure, this file may contain task descriptions, progress logs, findings, error details, blockers, and final results. The reporter then sends a derived summary through the external Feishu messaging service. Consequently, the persisted job has ongoing access to task-derived information and an external transmission channel. Cleanup depends on the task reaching `done` or `failed` and on the cron or agent correctly recognizing that state. The instructions instead use `paused` when work becomes blocked, which is not identified as a cron-removal condition. Interrupted sessions, abandoned tasks, malformed state files, cleanup failures, or p ...[truncated 1771 chars]
Remediation
## Remediation Suggestions 1. Require explicit, task-specific user consent before creating any scheduled job. Clearly disclose its frequency, duration, data source, and messaging destination. 2. Prefer non-persistent, in-session progress reporting. Do not install a cron job when the same goal can be achieved during the active session. 3. If scheduling is necessary, assign a strict expiration time or maximum execution count instead of relying exclusively on task-file status. 4. Record and validate the exact scheduler job identifier, and remove it on every terminal path, including completion, failure, pause, cancellation, timeout, interruption, and malformed-state detection. 5. Treat `paused` as a cleanup condition unless the user explicitly authorizes continued reporting. 6. Obtain separate confirmation before transmitting task information externally, and consistently identify the actual service as Feishu rather than referring to WhatsApp elsewhere. 7. Minimize the information included in reports. Redact credentials, personal data, proprietary content, internal paths, and other sensitive task details before transmission. 8. Restrict the scheduled process to the specific task file, use least-privilege permissions, and prevent traversal or unintended file selection through strict slug validation. 9. Provide commands or automated logic to enumerate and remove orphaned `task-report-*` jobs.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill advertises periodic external progress reports through messaging services without any warning, consent, or scoping of what task information may leave the environment. This can leak sensitive project status, filenames, blockers, or results to third-party services, creating confidentiality and compliance risks.

Missing User Warnings

High
Confidence
99% confidence
Finding
The cron instruction explicitly automates recurring Feishu messages that read local task files and transmit progress updates externally, all without user approval. Because the cron runs repeatedly and references workspace content, it can continuously exfiltrate sensitive operational details until completion or failure, magnifying the impact of a mistaken or unauthorized activation.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The skill inconsistently says it will send progress/failure notifications via WhatsApp, Feishu, and a quick-reference entry, which creates ambiguity about what external service will receive task data. In security-sensitive workflows, channel confusion can cause unintended disclosure to the wrong third-party platform, bypass user expectations, and make auditing or consent impossible.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill directs automatic creation and continuous updating of `.tasks/<TASK-SLUG>.md` in the workspace without notifying the user or obtaining consent. Silent writes can persist sensitive task details, plans, errors, or intermediate results in project files, which may later be committed, synced, or read by other tools unexpectedly.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The quick reference says to send an immediate WhatsApp alert when stuck, while earlier sections direct Feishu messaging. This contradiction increases the chance that operators or agents send sensitive progress/error details to an unintended destination, especially during failure handling when messages may include blockers, logs, or partial results.

Static analysis

No suspicious patterns detected.