Back to skill

Security audit

Self Evolution Pro

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed self-learning tool, but it asks agents to persist, promote, share, and schedule conversation-derived content with too little user control.

Review carefully before installing. Use it only if you want an agent to maintain persistent learning files, and do not allow automatic promotion, cross-session history access, subagent spawning, scheduled reviews, or ClawHub publishing unless each action is explicitly approved after reviewing the exact content and destination.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (3)

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:84
Finding

Automatic Promotion of Conversation-Derived Content into Persistent Agent Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 84-92
Vulnerability Type: Persistent agent memory poisoning
Risk Level: High

Code Snippet:

markdown
## 自动晋级规则

当满足以下条件时**自动晋级**:

| 目标文件 | 条件 |
|---------|------|
| `SOUL.md` | 行为模式类学习,复发≥2次 |
| `TOOLS.md` | 工具相关,复发≥2次 |
| `AGENTS.md` | 工作流相关,已解决 |
| `CLAUDE.md` | 项目约定,复发≥3次 |
| 技能提取 | 跨3+个不同任务复发 |

The permissive promotion policy is reinforced at SKILL.md:427:

markdown
7. **积极晋级** - 存疑时优先晋级

Technical Analysis

The skill instructs the agent to promote information derived from conversations and learning records into authoritative, persistent instruction files such as SOUL.md, TOOLS.md, AGENTS.md, and CLAUDE.md. These files can influence agent behavior, tool use, workflows, and project conventions in future sessions.

Recurrence count is treated as sufficient evidence that content is safe to promote. Repetition does not establish trust: an attacker can deliberately repeat a crafted correction or recommendation until the configured threshold is reached. The instruction to favor promotion when uncertain further weakens the trust boundary.

No source validation, provenance enforcement, content sanitization, human approval, or distinction between descriptive observations and executable agent instructions is specified. Consequently, attacker-controlled conversation content can be transformed into durable behavioral policy.

Attack Path

  1. An attacker supplies a crafted correction or “best practice” containing a behavioral directive.
  2. The attacker repeats or rephrases that directive until its recurrence count reaches the applicable threshold.
  3. The skill records the content as a learning or behavioral pattern.
  4. The automatic promotion workflow classifies it as behavior-, tool-, workflow-, or project-related.
  5. The content is written into an authoritative file such as SOUL.md or AGENTS.md.

...[truncated 731 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove automatic writes to SOUL.md, TOOLS.md, AGENTS.md, CLAUDE.md, and other authoritative instruction files.
  2. Store learned observations only in a non-authoritative data file that is never interpreted as agent policy.
  3. Require explicit, informed human approval for every proposed promotion.
  4. Display the exact source, destination, and proposed diff before approval.
  5. Track immutable provenance, including session, author, timestamp, and original text.
  6. Reject learning content containing tool commands, role changes, safety overrides, secret-handling instructions, or directives to modify memory.
  7. Replace recurrence-based trust with an allowlisted promotion schema and independent validation.
  8. Remove the “promote when uncertain” policy and default to no promotion.
  9. Make promoted changes reversible through backups, version control, and an audit log.

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:217
Finding

Unrestricted Cross-Session History Access and Learning Propagation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 217-253
Vulnerability Type: Cross-session access without an explicit authorization boundary
Risk Level: High

Code Snippet:

javascript
sessions_send({
  sessionKey: "session:project-alpha-daily",
  message: "新学习:Docker M1平台问题解决方案已记录到 .learnings/ERRORS.md"
})
javascript
// 查看最近会话
sessions_list({ activeMinutes: 60, messageLimit: 3 })

// 读取特定会话历史
sessions_history({ sessionKey: "session-id", limit: 50 })
javascript
sessions_spawn({
  task: "研究这个错误并提出系统性解决方案",
  label: "error-research",
  runtime: "subagent",
  mode: "run"
})

Technical Analysis

The documented workflow allows the skill to enumerate recent sessions, retrieve up to 50 messages from another session, transmit learning information to another session, and delegate content processing to a subagent.

The workflow does not require explicit consent from the source-session owner or destination-session owner. It also lacks same-project enforcement, sensitivity classification, secret redaction, minimum-necessary retrieval, destination validation, and controls preventing raw conversation data from being forwarded.

Session identifiers are treated as sufficient authorization. If an agent can discover or receive a session key, the documented process encourages it to access and propagate that session's content. This breaks least-privilege expectations where sessions may represent distinct users, projects, or confidentiality boundaries.

Attack Path

  1. Sensitive or attacker-crafted content is introduced into one session.
  2. The skill enumerates sessions through sessions_list or obtains a target session key.
  3. It calls sessions_history and retrieves messages from the target session.
  4. Retrieved information is processed as learning material without sensitivity or provenance checks.
  5. The information is forwarded with sessions_send, writt ...[truncated 765 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit user authorization before listing, reading, or sending data to another session.
  2. Enforce server-side same-user and same-project access controls rather than trusting a supplied session key.
  3. Use a deny-by-default policy for cross-session operations.
  4. Retrieve only specifically selected messages instead of a broad fixed history window.
  5. Redact credentials, tokens, personal data, and other sensitive material before storage or transmission.
  6. Never forward raw session history automatically; send a user-reviewed, minimal summary instead.
  7. Require destination confirmation before invoking sessions_send.
  8. Restrict subagents to sanitized inputs and prevent them from accessing unrelated sessions.
  9. Record source, destination, purpose, approver, and transmitted fields in an audit log.
  10. Prevent cross-session content from being promoted into persistent instructions without separate review.

T06 · System Persistence

Error
Location
SKILL.md:331
Finding

Installation of a Recurring Autonomous Agent Review Task

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 331-345
Vulnerability Type: Persistent scheduled agent execution
Risk Level: High

Code Snippet:

javascript
// 每周一早上审查学习
cron_add({
  name: "self-review",
  schedule: { kind: "cron", expr: "0 9 * * 1" },
  payload: {
    kind: "agentTurn",
    message: "执行 .learnings/ 审查:1) 高优先级pending项 2) 识别可晋级项 3) 更新知识图谱"
  },
  delivery: { mode: "announce" }
})

Technical Analysis

The skill recommends installing a weekly scheduled task whose payload creates an autonomous agentTurn. The task survives the initiating skill run and repeatedly processes persistent learning records.

The scheduled operation is connected to promotion candidate identification and knowledge-graph modification. Because learning records may contain untrusted conversation-derived content, the recurring task creates a delayed execution path: attacker-controlled material can be planted during one interaction and processed after that interaction has ended.

No expiration date, installation confirmation, restricted execution identity, integrity validation, removal procedure, or prohibition against automatic promotion is included. Announcing the task output does not prevent the task from executing or modifying persistent state.

Attack Path

  1. The user or agent follows the skill instructions and installs the self-review cron task.
  2. An attacker introduces a malicious learning record or manipulates recurrence and priority metadata.
  3. The original conversation ends, but the scheduled task remains installed.
  4. On the next scheduled run, an autonomous agent reviews the attacker-controlled record.
  5. The record is selected as a promotion candidate or added to the knowledge graph.
  6. The resulting persistent state influences subsequent sessions, allowing the attack to survive beyond the initial skill invocation.

Impact Assessment

The scheduled task establ ...[truncated 419 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove automatic or recommended cron installation and make reviews manually initiated by default.
  2. Require explicit confirmation that identifies the schedule, payload, permissions, and persistence duration.
  3. Add a fixed expiration date and maximum execution count.
  4. Document and implement a reliable command for listing and removing the scheduled task.
  5. Run reviews under a restricted identity with read-only access to authoritative instruction files.
  6. Prevent scheduled tasks from modifying SOUL.md, AGENTS.md, TOOLS.md, CLAUDE.md, or skill definitions.
  7. Validate record provenance and integrity before scheduled processing.
  8. Require human approval for every proposed state change generated by a scheduled review.
  9. Log each execution, input set, proposed diff, approval decision, and resulting changes.
  10. Disable the task automatically when malformed, untrusted, or cross-session content is detected.
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 Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (23)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个较完整的“自我进化”系统,包含自动提取、多维分析、跨会话同步和自动晋级等高级能力。但提供的代码实际只是一个本地脚本:解析命令行参数,校验技能名,创建技能目录和占位 SKILL.md,追加版本历史,尝试在知识图谱文件中插入一条引用,并在 --publish 时调用外部命令发布。虽然它与“技能提取/知识图谱/进化追踪”存在部分相关性,但并没有实现根因分析、跨会话同步、自动晋级,也没有任何自然语言触发处理。更关键的是,所谓“提取”并未真正从学习记录中生成技能内容,读取到的 LEARNING_CONTENT 变量甚至未被用于输出内容生成。因此声明显著夸大了实际行为,且代码还具备一个未明确声明的外部发布能力。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

声明描述的是一个具备主动分析、提取、追踪和同步能力的复杂“自我进化”技能;但提供的代码只是环境初始化和模板文件生成。虽然模板中提到了知识图谱、指标、版本历史和审查计划,说明其为相关功能做了数据结构准备,但没有任何实际自动化处理、分析、同步、触发器处理或晋级执行逻辑。因此代码的实际主用途是“初始化本地学习/进化目录结构”,与声明的核心功能存在实质性不符。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个功能较完整的“自我进化”系统,强调自动提取、多维分析、进化追踪、跨会话同步和自动晋级。实际提供的代码块仅是 review.sh 审查脚本,主要用于读取本地 markdown 记录文件并生成审查报告,属于辅助性报表/巡检功能。虽然它与“审查学习记录、识别可晋级项、检查知识图谱状态、更新简单指标”有关,和声明主题有一定相关性,但远未覆盖声明中的核心增强能力。尤其是自动技能提取、根因分析、跨会话同步、自动晋级都没有实质实现;知识图谱也没有更新,只是检查文件状态。因此代码行为明显弱于且不同于声明的主要目的,应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill encourages cross-session history access and message sending without a privacy warning or data-boundary controls. This is dangerous because user-provided content, corrections, and operational context may be retrieved or propagated into other sessions, violating confidentiality and least-privilege expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

Publishing extracted skills to an external hub is an outbound data transfer to a third party, yet the documentation provides no warning or consent model. If logged learnings contain user inputs, internal procedures, or sensitive context, publication could directly exfiltrate confidential information.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Broad trigger phrases such as '学习这个' or '记录教训' can match ordinary conversation and activate the skill unintentionally. Because the skill then proposes durable logging, promotion, sharing, or extraction workflows, accidental activation can lead to persistence of sensitive content or unwanted side effects.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The activation logic mixes explicit phrases with subjective conditions like '发现一个非显而易见的解决方案' and '重复犯同一个错误超过2次.' Ambiguous activation criteria increase the chance the skill runs without user awareness, which is especially risky because the skill is designed to persist and propagate information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill describes automatic writes and modifications to multiple workspace files and directories without warning about persistence or possible impact. Silent durable writes are dangerous in agent systems because they can alter future behavior, retain sensitive data, and create hard-to-audit state changes.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
80% confidence
Finding

The documentation extends the skill's effective behavior to include external publication and cross-session sharing beyond the declared manifest purpose. That scope expansion matters because users may invoke a benign-seeming 'learning' skill without realizing it can transmit or propagate data elsewhere.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The logging guidance explicitly encourages storing user corrections, inputs, and context in durable files. Persistent storage of conversational content without minimization or consent can accumulate sensitive information and later expose it through future reads, sync, or publication features.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill frames cross-session reading and reuse of learning logs as normal operation without defining minimization, retention, or sensitivity boundaries. That increases the risk that personal, confidential, or project-sensitive conversation content is retained and reused in contexts where it is unnecessary or inappropriate.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
79% confidence
Finding

The skill authorizes spawning subagents for 'background research,' which expands scope beyond simple self-learning/logging into autonomous task execution. In an agent environment, this can cause unreviewed actions, increased data exposure to child agents, and unintended use of tools or context without explicit user consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Automated background execution and scheduled self-review introduce autonomous actions that can occur outside the immediate user interaction loop. Without strong warnings and consent, this can lead to unexpected task execution, persistent state changes, and continued processing of prior conversation content.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Automatic trigger detection based on common utterances like corrections, requests, or error descriptions is too broad for safe activation. In practice, this can convert routine conversation content into persistent logs or trigger follow-on actions without a meaningful consent boundary.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This shell script is a code file, so natural-language policy checks apply to its comments, help text, and user-facing output. The title, usage text, option descriptions, and examples are presented only in Chinese, which imposes a specific language on users without opt-in or any documented reason that the skill is region-specific.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The header comment says the script extracts skills from learning records and publishes them, and lines L086-L090 do read matching learning content. However, that content is never incorporated into the generated SKILL.md; instead lines L167-L220 write a generic TODO template, so the implemented behavior is template scaffolding rather than actual skill extraction.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest describes an enhanced self-evolution skill with automatic skill extraction, root-cause analysis, knowledge graph, cross-session sync, and auto-promotion. In this file, the only related behavior is appending a version-history entry and a best-effort local text substitution in KNOWLEDGE_GRAPH.md, plus an optional publish command; there is no root-cause analysis, no cross-session synchronization, and no automatic promotion state change beyond printing a manual next step.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This shell script's comments, generated markdown templates, and console output are all written in Chinese, which imposes a specific language on users. The policy allows locale constraints only when they are optional or clearly justified, but this file provides no opt-in, alternative language, or explanation that the skill is China-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script's comments and all user-facing output are in Chinese, including the report title and guidance text, with no indication that language is configurable or limited to a Chinese-specific context. The policy requires avoiding forced language or locale constraints unless the user opts in or the scope is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

Most of the skill's natural-language instructions, triggers, and operational guidance are written exclusively in Chinese. Because the file does not offer a language option or explain that the skill is intentionally region- or locale-specific, it may impose a language constraint without user opt-in.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The header documentation states that the script identifies promotable items and updates the knowledge graph. In code, the only write operation is appending '最后审查' to metrics.md at L092, while the knowledge-graph logic at L100-L105 merely checks for file existence and counts lines.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The comment on L003 explicitly says '更新知识图谱'. However, the corresponding section at L097-L105 only tests whether KNOWLEDGE_GRAPH.md exists and reports a node count, with no modification of that file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This shell script creates the evolution directory and appends a review date to metrics.md, which is a file write operation. Although the script logs that metrics were updated after the fact, there is no prior warning, confirmation, or inline comment/docstring disclosing that it will modify files.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.