Back to skill

Security audit

上下文管理

Security checks for vulnerabilities and agentic risk

Overview

This is a real memory-management skill, but it needs Review because it can persist and automate changes to agent memory without enough guardrails.

Install only if you want this workspace to maintain long-term agent memory. Use --dry-run first, review generated entries before writing them to MEMORY.md, avoid storing secrets or sensitive personal data in memory files, and do not enable the cron job until you are comfortable with recurring persistent updates.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T02 · Agent Memory Poisoning

Warning
Location
scripts/memory_distill.py:102
Finding

Untrusted Daily-Memory Content Can Poison Persistent Agent Memory

Content
View full analysis
list[dict]: content = filepath.read_text(encoding="utf-8") lines = content.split("\n") date = filepath.stem sections = parse_headings(lines) lessons = [] seen_titles = set() for sec in sections: if is_takeaway_section(sec["title"]) and sec["content"].strip(): key = sec["title"].strip() if key in seen_titles: continue seen_titles.add(key) clean_lines = [] for line in sec["content_lines"]: stripped = line.strip() if stripped.startswith("- [ ]") or stripped.startswith("- [x]"): continue if stripped: clean_lines.append(stripped) clean_content = "\n".join(clean_lines) if clean_content: lessons.append({ "date": date, "title": "技术收获", "content": clean_content, "source": "section", }) for sec in sections: if sec["level"] == 3 and has_problem_fix(sec["content"]): summary = extract_problem_fix_summary(sec) if summary: title = sec["title"].lstrip("0123456789.、 ") lessons.append({ "date": date, "title": title, "content": summary, "source": "problem_fix", }) re ...[truncated 4287 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
claw.json:7
Finding

Manifest Does Not Declare Persistent Workspace Writes

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README explicitly instructs users to run an automated script that appends to MEMORY.md and to schedule it via cron, but it does not warn that this creates and continuously modifies persistent user/agent memory. In a context-management skill, silent or poorly disclosed persistence is security-relevant because sensitive prompts, user preferences, operational details, or secrets may be retained and repeatedly propagated into long-term storage.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The sample SOUL.md guidance states '默认 [语言]' and the surrounding skill is written to establish agent communication defaults. Later examples also fix the user language to Chinese, which can encourage a locale-specific default without presenting user choice. This matches the language/locale policy concern for natural-language instructions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The example configuration specifies 'Language: 中文' as a fixed value and does not note that language should come from explicit user preference. Because this file is instructional, that example can propagate a forced locale behavior rather than an opt-in choice. That is a natural-language language/locale policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest description is written entirely in Chinese and presents the skill as a general agent memory methodology, but it does not indicate that the skill is China-region-specific or offer any language/locale option. This creates a natural-language policy concern because the skill appears to impose a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code file contains natural-language instructions, usage text, and runtime output exclusively in Chinese. Under the stated policy, forcing a specific language without user opt-in is a locale/language policy violation unless the constraint is explicitly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

A natural-language policy issue exists because the skill documentation forces a specific language presentation with no user opt-in or alternative. The file does not indicate that the skill is region-specific or provide multilingual guidance, which can conflict with organizational language-choice expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.