Back to skill

Security audit

Task Detection + Proactive Thinking

Security checks for vulnerabilities and agentic risk

Overview

The skill is not clearly malicious, but it asks agents to automatically change project task state, persist task details, and send alerts without enough user control.

Install only if you are comfortable with an agent that may automatically act on task-management records. Keep auto-fix, scheduled scans, and Feishu alerts disabled unless explicitly needed; review proposed task changes before applying them; avoid putting secrets or sensitive customer details in task names or blocker notes that may be written into memory.

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 (2)

T08 · Insecure Dependencies

Warning
Location
README.md:20
Finding
Unpinned Remote Skill Installation Creates a Mutable Supply-Chain Boundary<![CDATA[ ## Vulnerability Details **File Location**: `README.md`, lines 20-23 **Vulnerability Type**: Unpinned package and skill installation **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add clawwizard/task-detection-thinking ``` ### Technical Analysis The documented installation command executes `npx skills` and installs the remotely identified skill `clawwizard/task-detection-thinking` without pinning either component to an immutable version, commit, or integrity digest. Consequently, the code installed by this command can differ from the code reviewed in this audit. The effective installation payload depends on the package registry and remote skill state at installation time. A compromised publisher account, registry package, ownership transfer, or malicious future release could therefore substitute attacker-controlled code. This issue is confined to the documented installation path; the audited `package.json` itself declares no runtime dependencies. ### Attack Path 1. An attacker compromises or gains publishing control over the `skills` package, the `clawwizard/task-detection-thinking` remote skill, or an associated distribution account. 2. The attacker publishes a malicious release under the same mutable name. 3. A user follows the documented unpinned `npx skills add clawwizard/task-detection-thinking` command. 4. `npx` resolves the current package version, and the installer resolves the current remote skill contents rather than an audited immutable artifact. 5. The malicious package or skill executes installation logic or places attacker-controlled scripts into the agent environment. 6. Subsequent skill invocation can execute those scripts with the privileges of the OpenClaw process or invoking user. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the user running the installation command. Depending on that account's permissions, an attacker could read or modify agent workspaces, ...[truncated 265 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Pin the installer package to a reviewed exact version, for example `npx --package=skills@<exact-version> ...`. - Pin the skill to an immutable release, commit hash, or content digest if the installer supports it. - Publish and verify cryptographic checksums or signed provenance for released skill artifacts. - Use a lockfile or trusted internal mirror where possible. - Disable lifecycle scripts during retrieval unless they are explicitly required and audited. - Document verification steps that compare the downloaded artifact against the reviewed source revision. - Prefer a package-manager invocation that refuses implicit installation or unexpected version resolution. ]]>

T02 · Agent Memory Poisoning

Warning
Location
scripts/detect.js:302
Finding
Untrusted Task Content Is Persisted in Agent Memory Without Neutralization<![CDATA[ ## Vulnerability Details **File Location**: `scripts/detect.js`, lines 302-345 **Vulnerability Type**: Persistent prompt-injection and agent-memory poisoning sink **Risk Level**: Medium ### Vulnerable Code The task parser accepts task identifiers and names directly from workspace-controlled Markdown: ```javascript const cells = line.split('|').map(c => c.trim()).filter(c => c); if (cells.length >= 7 && cells[0] !== '任务ID') { tasks.push({ id: cells[0], name: cells[1], status: cells[2], progress: cells[3], deadline: cells[4], lastUpdate: cells[5], blockReason: cells[6], source: 'HEARTBEAT' }); } ``` The resulting values are inserted directly into a persistent agent-memory file: ```javascript function writeTaskAlerts(alerts, autoFixResults) { const hotDir = path.join(MEMORY_DIR, 'hot'); if (!fs.existsSync(hotDir)) { fs.mkdirSync(hotDir, { recursive: true }); } const content = [ '# 任务告警', `**生成时间**: ${new Date().toISOString()}`, '', `## 异常任务 (${alerts.length})`, '' ]; const grouped = { high: alerts.filter(a => a.severity === 'high'), medium: alerts.filter(a => a.severity === 'medium') }; if (grouped.high.length > 0) { content.push('### 🔴 高优先级'); grouped.high.forEach(a => { content.push(`- **${a.task.id}**: ${a.task.name} (${a.type})`); if (a.analysis?.reasons) { content.push(` 原因: ${a.analysis.reasons.join(', ')}`); } }); content.push(''); } if (grouped.medium.length > 0) { content.push('### 🟡 中优先级'); grouped.medium.forEach(a => { content.push(`- **${a.task.id}**: ${a.task.name} (${a.type})`); }); content.push(''); } content.push(`## 自动修复结果`); content.push(`- 自动修复: ${autoFixResults.fixed.length}`); content.push(`- 需人工: ${autoFixResults.manual.length}`); fs.writeFileSync(path.join(hotDir, 'task-alert.md'), content.join('\n')); } ``` A second persistent sink also incorpora ...[truncated 3035 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Treat all values parsed from `HEARTBEAT.md` and `WORKING.md` as untrusted data. - Enforce a strict schema: - Require task IDs to match an allowlisted pattern such as `^T[0-9]+$`. - Restrict status to documented enum values. - Parse progress as a bounded integer. - Validate dates strictly and reject invalid values. - Apply reasonable length limits to names, dependency lists, and block reasons. - Store generated results as structured JSON with separate data fields rather than mixing untrusted values into free-form agent instructions. - When rendering Markdown, escape Markdown control characters and place untrusted fields in clearly labeled, quoted data blocks. - Prepend an explicit boundary statement stating that task fields are data and must never be interpreted as instructions. - Preserve provenance for every task field, including its source file and trust level. - Require confirmation before promoting externally supplied task content into long-term or cross-session memory. - Configure downstream agents to parse the structured result and ignore instructions appearing inside task-data fields. - Consider maintaining generated alerts outside the agent's automatically loaded prompt memory unless they have passed validation. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (26)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill allows automatic deadline updates, downstream schedule adjustments, and priority changes, which can materially alter project plans without human approval. In a task-management context, these changes can cascade across dependencies and mislead teams about commitments, ownership, and delivery risk.

Missing User Warnings

High
Confidence
96% confidence
Finding
The skill states it will "attempt auto-fix" and update task status, but it does not prominently warn users that files may be modified automatically. Hidden or under-disclosed write behavior is dangerous because users may invoke or auto-trigger the skill expecting diagnostics only, while it changes task state and records outputs in project memory.

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill explicitly describes automatic deadline updates and downstream schedule adjustments without a clear warning or approval boundary. Autonomous schedule mutation can disrupt planning, hide missed commitments, and propagate erroneous decisions across dependent tasks if the analysis is wrong.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Content
---

## Output Rules

| Output Type | Location | Trigger Condition |
|-------------|----------|-------------------|
Confidence
85% confidence
Finding
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Content
---

## Output Rules

| Output Type | Location | Trigger Condition |
|-------------|----------|-------------------|
Confidence
85% confidence
Finding
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The README advertises automatic fixes and autonomous resolution without warning that task files may be modified by the skill. In this context, silent or poorly understood write behavior is security-relevant because agents may alter project planning artifacts, status, or workflow state without explicit user approval.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The README mentions Feishu push notifications but does not warn that task data or metadata may be transmitted to an external service. This is dangerous because task names, blockers, deadlines, and status can contain sensitive operational or customer information, and users may not realize the skill sends that data off-host.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The README instructs users to install and execute the skill via `npx skills add ...` without documenting a pinned version, digest, or other integrity control. That creates a supply-chain risk because future package changes or a compromised upstream release could alter what users install and run.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The auto-summary rule describes scheduled writes to `HEARTBEAT.md` without clearly warning users about autonomous file modification. Scheduled background updates can overwrite manual edits, create misleading task state, or change workflow signals unexpectedly if users do not understand that the skill writes to these files.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The Chinese documentation mirrors the English claim of automatic fixes without warning that local task files may be modified. Because the skill's core purpose includes autonomous detection and fixing, omission of this warning increases the likelihood of unsafe deployment and unreviewed write access.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The Chinese README mentions Feishu notifications without a privacy or external-transmission warning, so users may unknowingly send task information to a third-party platform. In agent workflows, even seemingly routine status data can reveal internal projects, schedules, blockers, or credentials embedded in notes.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The Chinese installation instructions repeat the same unpinned `npx skills add ...` command, exposing users to the same dependency and release-drift risk. Since this is a user-facing execution path, an upstream compromise could affect installations in either language path.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The Chinese auto-summary rule states that task status is automatically summarized into `HEARTBEAT.md` daily, but it does not warn about scheduled file writes. That can lead to unexpected or continuous modification of project files, which is especially risky for autonomous agent skills that may run unattended.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
---

## Detection Rules (Auto-execute)

### 1. Scan HEARTBEAT.md
Confidence
89% confidence
Finding
The skill is designed to auto-execute detection logic and later perform autonomous remediation steps, which constitutes agentic decision-making over operational project data. In this context, autonomy increases risk because incorrect classifications can trigger unwarranted state changes, notifications, or follow-on actions without human review.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly states it will perform auto-attempted fixes such as supplementing missing information, retrying commands, and updating task status without clearly requiring user confirmation. That creates an integrity risk because project-tracking data can be changed automatically based on imperfect heuristics or stale memory context.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
Sending critical task alerts to Feishu can expose internal task names, blockers, deadlines, and other potentially sensitive operational data to an external service. The skill does not provide a privacy warning, consent mechanism, or data-minimization guidance for this outbound transmission.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill writes detection results and thinking logs into persistent memory files, which may store sensitive task context, blockers, and inferred analysis over time. Without a warning or retention controls, this creates a confidentiality and data-governance risk, especially if memory is broadly accessible or reused by other agents.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The skill declares an automatic trigger during "Heartbeat detection" without clearly defining scope, consent, or safeguards, which can cause the skill to run unexpectedly in unrelated contexts. Because the skill also performs analysis, writes logs, and attempts auto-fixes, ambiguous invocation increases the chance of unintended state changes and downstream actions.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
---

## Detection Rules (Auto-execute)

### 1. Scan HEARTBEAT.md
Confidence
88% confidence
Finding
The skill is designed for autonomous decision-making: it auto-executes detection logic, determines causes, generates solutions, and attempts auto-fixes without guaranteed human review. In this context, autonomy is riskier because the same skill can also modify task states, deadlines, logs, and trigger external alerts, compounding mistakes from incorrect classification or stale context.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill can push critical alerts to Feishu but does not disclose what data may be transmitted externally or obtain user consent for that disclosure. This creates a privacy and data-leak risk, especially if task names, blockers, deadlines, or internal project context contain sensitive operational information.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill explicitly advertises automatic scanning, anomaly handling, and attempted auto-fixes, but does not provide a clear safety boundary requiring confirmation before modifying task records or related files. In a task-management context, silent automation can alter status, deadlines, and logs in ways that misrepresent project state or overwrite human decisions, creating integrity and accountability risks.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The automatic remediation logic authorizes changing task states, retrying actions, updating deadlines, and adjusting downstream schedules without explicit user authorization or change-control safeguards. These are data-affecting operations that can corrupt planning records, hide operational problems, or cause cascading workflow errors if triggered on incomplete or stale context.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The skill description explicitly says it will 'automatically' scan task status, identify anomalies, generate solutions, and attempt auto-fixes, but it does not define clear activation boundaries, scope limits, or approval requirements. In an agent skill, broad autonomous language can cause the agent to act on unrelated context or perform unintended state-changing actions, increasing the risk of unauthorized modifications or unsafe automation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This code embeds its primary descriptive text and console output in Chinese, including the header comments and runtime status messages. The file provides no option for users to select another language and no justification that the skill is intended only for a Chinese-language environment, which creates a locale policy issue under the natural-language policy rule.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest description says the skill 'attempts auto-fixes,' and the main flow advertises an auto-fix step. However, tryAutoFix() never changes task state, files, or other resources; all branches leave autoFixed as false, so the code only reports issues for manual handling rather than attempting remediation.

Static analysis

No suspicious patterns detected.