Back to skill

Security audit

auto-complex-task-planner

Security checks for vulnerabilities and agentic risk

Overview

This looks like a real task-planning skill, but it gives broad automatic delegation behavior and stores raw task details persistently without enough user control or data safeguards.

Review this skill before installing in any workspace with sensitive prompts or shared agent memory. Use it only where automatic sub-agent planning is acceptable, require manual confirmation for deletion or bulk changes, avoid placing secrets in task text, and prefer a pinned or organization-approved ClawHub installer.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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 (4)

T02 · Agent Memory Poisoning

Error
Location
scheduler.py:451
Finding
Attacker-Controlled Task Content Is Persisted in Agent Memory## Vulnerability Details **File Location**: `scheduler.py:451-489` **Vulnerability Type**: Persistent agent-memory poisoning through unescaped user input **Risk Level**: High ### Vulnerable Code ```python def record_task_to_json(self, task: str, subagents: List[Dict], user_id: str, task_id: str, analysis: Dict): """记录任务到 JSON 文件(增强版)""" task_record = { "id": task_id, "task": task, "user_id": user_id, "created_at": datetime.now().isoformat(), "completed_at": None, "status": "running", "priority": analysis["priority"], "type": analysis["type"], "estimated_time": analysis["estimated_time"], "actual_time": None, "subagents": subagents, "quality_score": None, "feedback": [], } self.tasks_history.append(task_record) self.save_tasks_history() # 同时记录到每日 Memory 文件 today = datetime.now().strftime("%Y-%m-%d") memory_file = self.memory_path / f"{today}.md" if memory_file.exists(): content = memory_file.read_text(encoding='utf-8') else: content = f"# {today} 记忆\n\n" task_record_md = f""" ## 子 agent 任务 ### 📋 任务:{task[:50]}... - **任务 ID**: {task_id} - **创建时间**: {datetime.now().strftime("%Y-%m-%d %H:%M")} - **用户**: {user_id} - **优先级**: {analysis['priority']} - **类型**: {analysis['type']} - **子 agent 数量**: {len(subagents)} - **状态**: 进行中 - **预计完成**: {analysis['estimated_time']} 分钟 --- """ content += task_record_md memory_file.write_text(content, encoding='utf-8') ``` ### Technical Analysis The `task` and `user_id` parameters are user-controlled values. They are stored without validation in `tasks.json`, and portions of them are interpolated directly into a Markdown file under: ```text /home/admin/.openclaw/workspace/memory/ ``` No Markdown escaping, instruction filtering, trust-boundary annotation, or separation between untrusted task data and trusted agent memory is appli ...[truncated 2118 chars]
Remediation
## Remediation Suggestions 1. Do not write raw user input into prompt-consumed memory. Keep operational task history in a separate data directory that is not automatically loaded into agent context. 2. Store task records as structured data with an explicit schema and field-length limits. 3. If a human-readable memory summary is required, generate a neutral summary rather than copying task text verbatim. 4. Escape Markdown metacharacters and remove headings, role markers, tool-call syntax, and instruction-like control text before persistence. 5. Clearly delimit retained content as untrusted data when it must be provided to an agent. 6. Require explicit user or operator approval before adding externally supplied content to long-term memory. 7. Apply access controls so one user cannot poison memory consumed by another user or tenant. 8. Record provenance, owner identity, creation time, and trust level for every persistent memory entry. 9. Add tests using malicious task strings and user IDs to confirm that persisted values cannot become effective instructions.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:58
Finding
Unpinned ClawHub CLI Is Downloaded and Executed During Installation## Vulnerability Details **File Location**: `SKILL.md:58` **Vulnerability Type**: Unpinned executable package dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx clawhub install auto-complex-task-planner ``` ### Technical Analysis The installation command invokes `clawhub` through `npx` without specifying an audited package version or integrity digest. If the package is not already available in a trusted local installation, `npx` may resolve, download, and execute mutable package content from the configured npm registry. This places the installation process inside the security boundary of the current registry state rather than the version reviewed by the project. Package-account compromise, registry compromise, malicious republishing, or unexpected package resolution could cause different code to execute when users follow the documentation. The installed skill name is also not version-pinned in this command, so the exact skill artifact obtained at installation time is not established by the documentation. ### Attack Path 1. An attacker compromises the package publisher, registry entry, distribution channel, or relevant dependency chain. 2. A malicious or altered `clawhub` package version becomes the version resolved by `npx`. 3. A user follows the installation instructions in `SKILL.md`. 4. `npx` downloads and executes the resolved package with the user’s local privileges. 5. The malicious package can access resources available to that user and can install an altered skill artifact. ### Impact Assessment Execution occurs with the privileges of the user running the installation command. Depending on that account’s permissions and environment, a compromised installer could: - Read or modify files accessible to the user. - Access environment variables and locally available credentials. - Modify the user’s OpenClaw workspace. - Install malicious or altered skill content. - Execute additional programs or network operations. - Establish persi ...[truncated 216 chars]
Remediation
## Remediation Suggestions 1. Pin the ClawHub CLI to a specifically audited version, for example through an organization-approved installation mechanism. 2. Use package-lock integrity metadata or an equivalent cryptographic verification mechanism. 3. Pin the skill artifact version or immutable digest where the platform supports it. 4. Document the expected registry and package publisher identity. 5. Prefer a preinstalled, centrally managed ClawHub CLI over ad hoc `npx` execution. 6. In CI or automated environments, disable unexpected package downloads and use an approved dependency mirror. 7. Regularly review the pinned package and its transitive dependencies before upgrading.

T08 · Insecure Dependencies

Warning
Location
README.md:16
Finding
English Installation Guide Executes an Unpinned ClawHub Package## Vulnerability Details **File Location**: `README.md:16` **Vulnerability Type**: Unpinned executable package dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx clawhub install auto-complex-task-planner ``` ### Technical Analysis The English installation guide instructs users to execute `clawhub` through `npx` without a fixed package version or integrity verification. The effective executable can therefore change after this project has been reviewed. If `npx` needs to retrieve the package, security depends on the current npm registry response, publisher account, and dependency graph. This creates a supply-chain boundary that is neither pinned nor independently verified by the project. ### Attack Path 1. An attacker publishes or causes the registry to serve a compromised `clawhub` package or dependency. 2. A user copies the command from `README.md`. 3. `npx` resolves and executes the compromised package. 4. The package runs with the invoking user’s privileges and may install modified skill content or perform unrelated malicious actions. ### Impact Assessment A compromised installer could access files, environment variables, credentials, and workspace resources available to the invoking user. It could also modify the installed skill or execute additional payloads. The audit did not identify an embedded malicious payload in this repository. The risk arises from executing a mutable external package without version or integrity controls.
Remediation
## Remediation Suggestions 1. Replace the floating `npx` invocation with an explicitly pinned and audited CLI version. 2. Verify package integrity using a lockfile, trusted package mirror, or published cryptographic digest. 3. Pin the installed skill version or artifact digest. 4. Identify the expected package registry and trusted publisher in the installation instructions. 5. Recommend use of an administrator-provisioned CLI for production deployments. 6. Test and review every dependency upgrade before changing the documented version.

T08 · Insecure Dependencies

Warning
Location
README_CN.md:16
Finding
Chinese Installation Guide Executes an Unpinned ClawHub Package## Vulnerability Details **File Location**: `README_CN.md:16` **Vulnerability Type**: Unpinned executable package dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx clawhub install auto-complex-task-planner ``` ### Technical Analysis The installation command in the Chinese guide invokes a package-resolved executable without pinning its version or validating its integrity. Consequently, users may execute package content that differs from the content available when this project was audited. The command trusts the configured npm registry, publisher account, and complete dependency chain at execution time. Compromise or substitution at any of those points can turn the documented installation step into arbitrary code execution under the invoking account. ### Attack Path 1. The `clawhub` package, its publisher account, registry distribution path, or a transitive dependency is compromised. 2. A user follows the command in `README_CN.md`. 3. `npx` retrieves and executes the attacker-controlled version. 4. The package operates with the user’s permissions and may modify the workspace, collect accessible data, or install a malicious skill artifact. ### Impact Assessment The maximum privilege is that of the account running the installation command. Accessible local files, environment variables, developer credentials, and OpenClaw workspace state may be affected. There is no evidence in the audited repository that the current external package is malicious. The vulnerability is the lack of reproducible, integrity-verified dependency resolution.
Remediation
## Remediation Suggestions 1. Specify a reviewed ClawHub CLI version rather than resolving the latest package implicitly. 2. Use integrity hashes, lockfiles, signed artifacts, or an approved internal package mirror. 3. Pin the version or immutable digest of the skill being installed. 4. Document the trusted registry and publisher. 5. Avoid automatic external package retrieval in privileged or production environments. 6. Keep all language variants of the installation documentation synchronized with the hardened command.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (20)

Vague Triggers

High
Confidence
97% confidence
Finding
The guidance 'Just use naturally! The skill automatically detects complex tasks' encourages broad, implicit activation without an explicit confirmation step. In a skill that can create sub-agents and execute work in parallel, this increases the chance of unintended execution, resource use, or downstream actions triggered by ordinary user phrasing.

Vague Triggers

High
Confidence
98% confidence
Finding
The keyword-based rules are extremely generic, including common words like 'search', 'find', 'develop', 'report', 'send', and 'modify', which can appear in routine conversation. Because the skill auto-classifies and may spawn sub-agents or queue tasks, these broad triggers create a substantial risk of accidental invocation and unintended automated activity.

Missing User Warnings

High
Confidence
95% confidence
Finding
The README includes a destructive batch-delete example ('Batch delete XXX' and later 'Develop a Xiaohongshu batch delete notes feature') without an explicit warning to review targets, dry-run, or confirm scope before execution. In a task-automation skill, normalizing destructive examples without guardrails can lead users to invoke deletion workflows that remove data unintentionally at scale.

Vague Triggers

High
Confidence
95% confidence
Finding
The skill advertises broad auto-trigger keywords such as research, development, search, report, delete, send, and modify, which are common in ordinary conversation and operational requests. In a skill that can automatically create sub-agents and initiate parallel execution, overly broad activation raises the chance of unintended delegation or destructive workflows without deliberate user intent.

Missing User Warnings

High
Confidence
97% confidence
Finding
The README includes bulk-delete capability and a concrete example of developing a 'batch delete notes' function, but provides no destructive-action warning, safeguard, or confirmation requirement. In the context of an automation skill that can parallelize tasks, this materially increases the risk of accidental or large-scale data loss if the trigger is misfired or the generated subtask is wrong.

Missing User Warnings

High
Confidence
96% confidence
Finding
The skill explicitly documents a batch-deletion use case without any caution, guardrail, or confirmation step. Because the skill is designed for automation and parallel execution, a mistaken or ambiguous request could cause large-scale destructive actions before the user has a chance to verify scope.

Ae1

High
Category
analysis-evasion
Content
- `SKILL.md` - 技能文档
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The description emphasizes automatic analysis, sub-agent creation, and parallel execution, but does not present a clear user-facing warning about autonomous execution behavior and its consequences. Users may not realize that ordinary requests could lead to multiple parallel agents consuming resources or performing actions without a deliberate execution decision.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The installation command invokes `npx clawhub` without a pinned version, so users may fetch and execute whatever package version is current at install time. That creates a supply-chain risk: a compromised or malicious newer release could be executed implicitly by anyone following the README.

Natural-Language Policy Violations

Medium
Confidence
81% confidence
Finding
该技能文档和触发/优先级关键词体系均固定为中文表达,如“紧急、优先、马上”“调研、开发、删除”等,但未说明是否支持其他语言或允许用户选择语言。若组织要求不强制特定语言而应提供选择,此类固定语言约束构成自然语言层面的策略风险。

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The documentation describes automatic parallel sub-agent creation, task recording, progress tracking, and cleanup, but does not clearly warn users about what data may be logged, retained, or modified. In a planner/orchestrator skill, missing disclosure and consent around autonomous execution and task lifecycle behavior can lead to privacy exposure, unexpected resource consumption, or unintended changes to the environment.

Lp3

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding
The skill advertises behaviors that imply reading and writing task records, but it does not declare any explicit tool scope or permissions. That mismatch can cause the runtime or user to underestimate what the skill may access or modify, increasing the chance of unauthorized file operations or unsafe deployment assumptions.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The activation examples and keyword-based classification are broad enough to match many ordinary requests, which can trigger autonomous planning and sub-agent execution when the user did not intend it. In a skill that can spawn parallel agents and handle file operations, accidental invocation expands the operational and data-exposure risk.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The documentation promotes automatic parallel sub-agent execution and JSON task recording, but does not warn about what data may be shared with sub-agents, where task records are stored, or what resource usage may occur. This can lead to unintended disclosure of sensitive inputs, excessive system activity, or persistent storage of user data without informed consent.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
Installing via 'npx clawhub' without pinning a specific version makes the skill dependent on whatever package version is current at install time. If the upstream package is compromised or a breaking release is published, users may execute unexpected code during installation or setup.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The file-level description and embedded task templates are written entirely in Chinese and present the skill as operating in that language by default, without offering any language or locale choice. This can violate language/locale policy when users have not explicitly opted into Chinese-only interaction.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The scheduler persistently writes raw task text, user_id, timestamps, priorities, and subagent details into JSON and daily markdown files under a workspace path without any consent gate, minimization, or retention control. In an agent system, task text can easily contain sensitive business data, credentials, personal data, or confidential requests, so this creates a durable leakage surface to any other component, user, backup process, or operator with filesystem access.

Ssd 3

Medium
Confidence
98% confidence
Finding
The code stores full natural-language task content plus user identifiers in persistent history and daily memory files, creating a long-lived data retention channel that may capture secrets, internal plans, PII, or regulated data embedded in prompts. Because this skill is a complex task planner that encourages broad research/development workflows and subagent orchestration, the prompts are especially likely to be rich in sensitive context, making leakage and cross-task exposure more dangerous.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The file list labels SKILL.md as 'Complete skill documentation (Chinese),' and the support section repeats that the complete documentation is Chinese. This can create a language-access constraint for users without offering a choice or documenting why the locale restriction is necessary.

Static analysis

No suspicious patterns detected.