Back to skill

Security audit

OpenClaw Obsidian Memory

Security checks for vulnerabilities and agentic risk

Overview

The skill is purpose-aligned for an Obsidian-backed memory system, but it asks to persistently change agent memory rules, consolidate sensitive local context, and optionally install recurring archival jobs with limited user control.

Install only if you deliberately want an agent-level persistent memory system, not just Obsidian search. Before enabling it, review any proposed AGENTS.md and MEMORY.md changes, avoid storing secrets or private conversations in the Vault, require confirmation before every write or archive, and skip the cron jobs unless you also define retention, review, and removal procedures.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (4)

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:72
Finding

Persistent modification of Agent instructions and memory state

Content
View full analysis
/scripts/obsidian-search.js 2. Search local memory for the most recent three days. 3. Merge both results, prioritizing knowledge from the Vault. ### Write mechanism After a task is completed, write to both locations: 1. Obsidian Vault 2. Local memory: memory/YYYY-MM-DD.md, and update the MEMORY.md index ### Step 6: Simplify MEMORY.md Replace MEMORY.md with a lightweight index referring to the Obsidian Vault. ``` ### Technical Analysis The Skill instructs the Agent to append to or replace persistent instructions in `AGENTS.md` and to rewrite `MEMORY.md`. These files affect behavior beyond the current invocation, including when retrieval occurs, which source is prioritized, and where future conversation-derived information is stored. Separating ordinary Skill configuration from trusted Agent policy is an important security boundary. Automatically placing Skill-controlled rules in persistent Agent instruction or memory files allows those rules to remain active in later sessions. The instruction to prioritize Vault content further increases the effect of any incorrect or attacker-controlled information stored there. ### Attack Path 1. A user activates the Skill to initialize an Obsidian memory system. 2. The Agent follows the initialization instructions and modifies `AGENTS.md` and `MEMORY.md`. 3. The new instructions remain present after the initialization session ends. 4. Future sessions automatically search the Vault, prioritize its c ...[truncated 767 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
scripts/obsidian-search.js:159
Finding

Untrusted Vault content is returned verbatim and prioritized in Agent responses

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:60
Finding

Aggregation of sensitive local profile, configuration, and conversation data

Content
View full analysis
Remediation
View remediation

T06 · System Persistence

Warning
Location
SKILL.md:147
Finding

Recurring memory-processing tasks persist beyond Skill initialization

Content
View full analysis
" openclaw cron add \ --name "weekly-memory-summary" \ --cron "0 3 * * 1" \ --tz "Asia/Shanghai" \ --timeout-seconds 180 \ --session "isolated" \ --no-deliver \ --message "" ``` The daily task summarizes the previous 24 hours and writes to both the Vault and local memory. The weekly task consolidates seven days of notes into permanent Vault notes. ### Technical Analysis After asking the user whether automatic archiving is desired, the Skill installs recurring tasks that survive the initialization session. These jobs continue processing conversation-derived information and modifying memory on a daily and weekly schedule. Scheduled automation is not inherently malicious, and the documented workflow requires user agreement. However, the Skill does not provide removal commands, automatic expiration, retention limits, per-run notification, or a mechanism to review the information processed by each invocation. The use of `--no-deliver` also means results are not delivered to the user after each run, reducing visibility into ongoing activity. The jobs execute in isolated Agent sessions, but they still perform durable writes to shared Vault and memory locations. ### Attack Path 1. During initialization, the user agrees to automatic memory archiving. 2. The Agent runs the provided `openclaw cron add` commands. 3. The scheduled tasks remain registered after the original Skill session ends. 4. The daily task processes recent conversations and writes s ...[truncated 835 chars]
Remediation
View remediation
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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (14)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The declared description presents a comprehensive skill for setting up and operating an OpenClaw-Obsidian permanent memory system, including integration with OpenClaw memory, dual retrieval behavior, and automated archival workflows. The supplied code does not implement any of those core capabilities. It only performs local analysis of Obsidian Markdown link structure by reading files in a Vault and printing backlinks/orphans. While this is tangentially related to the declared mention of managing Obsidian notes and bidirectional links, that is only a narrow subset of the description and not the primary declared purpose. Therefore the description materially overstates and misrepresents the actual behavior.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The declared description presents a broad skill for constructing and operating a persistent memory system centered on OpenClaw and Obsidian, including integration, automation, and note-management workflows. The supplied code does not implement those capabilities. It only reads local markdown files from an Obsidian Vault, searches for keyword matches, scores results, and prints excerpts and existing links. While this is related to Obsidian knowledge retrieval, it is materially narrower than the declared purpose and omits the central OpenClaw integration and automation features. Therefore the description does not accurately represent what this code chunk actually does.

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.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger phrases are very broad and overlap with ordinary discussion of knowledge management, making accidental activation likely. In this skill, accidental triggering is more dangerous because activation leads to file creation, memory-policy changes, and possible scheduled archival rather than a read-only assistive action.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill directs extraction of user preferences, system configuration, installed skills, and known issues into long-term notes by default. Persisting this kind of behavioral and configuration data increases privacy risk and can expose sensitive operational context if the vault is later accessed by other tools, users, or malware.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to append or replace content in AGENTS.md and rewrite MEMORY.md, which extends beyond managing an Obsidian vault and alters broader agent behavior and memory policy. This creates a prompt-scope escalation path where invoking a note-management skill can silently reconfigure persistent agent instructions and retention behavior.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The memory rules require automatic dual writes of task conclusions and important conversation summaries into persistent storage with no strong content boundaries. This is dangerous because it normalizes broad, durable retention of potentially sensitive user communications and decisions, creating a larger privacy and data-exposure surface over time.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill directs installation of cron jobs that perform ongoing unattended tasks and persistent archival, which is a system-level action outside the narrow scope of vault note management. This can create durable background behavior, unexpected data retention, and changes to the host environment that outlive the immediate user request.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The cron tasks are designed to continuously summarize and archive past conversations without interactive review, turning transient chats into unattended long-term records. This materially increases privacy risk, makes data retention harder for users to understand or control, and can preserve sensitive content far beyond the original session context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Hardcoding Asia/Shanghai is not severe on its own, but it is an unsafe default for scheduled retention because it may run at unexpected local times and without meaningful user intent. In the context of unattended archival, even small configuration assumptions can lead to surprising background writes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill says that after setup the AI will automatically write to the vault and memory during normal conversations, but it does not provide strong, recurring user warnings or granular consent for ongoing persistence. This is dangerous because users may discuss sensitive information assuming a normal chat, while the skill continuously converts that content into durable local records.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file's natural-language interface is entirely in Chinese, including its header comments, usage instructions, environment-variable description, and later user-facing console output. Because the skill does not offer a language choice or explain that it is intentionally region-specific, it violates the language/locale policy criterion for forced 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
95% confidence
Finding

The file’s header comments, usage instructions, and examples are written entirely in Chinese, and the runtime messages later in the script also assume Chinese output. For a general-purpose search utility, this is a natural-language policy issue because it imposes a specific language on users without opt-in or any documented region-specific justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file presents all headings, labels, and instructions in Chinese, which effectively forces a specific language for users of the template. Under the policy, language constraints should either be optional or explicitly justified as region- or audience-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.