Back to skill

Security audit

Openclaw Skill Intelligence Ingestion

Security checks for vulnerabilities and agentic risk

Overview

This skill is review-worthy because it automatically ingests external content and writes results into Obsidian and agent memory without asking each time.

Install only if you intentionally want shared links and pasted content to be automatically archived into Obsidian and OpenClaw memory. Before use, narrow the trigger, require confirmation before any file or memory write, review the fixed Obsidian and memory paths, treat fetched content as untrusted, and pin the installation to a reviewed commit.

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
  • 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
Findings (3)

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:94
Finding
Untrusted External Content Can Poison Persistent Agent Memory## Vulnerability Details **File Location**: `SKILL.md`, lines 21-24 and 94-101 **Vulnerability Type**: Persistent memory poisoning through automatic ingestion of untrusted content **Risk Level**: High ### Vulnerable Instructions ```markdown ### Step 1: READ — Extract Content 1. If a URL is provided, read the full content (use `read_url_content` or browser) 2. If text is pasted, use it directly 3. If X/Twitter link fails to parse (common), search web for the tweet content ``` ```markdown ### Step 6: REMEMBER — Update Memory 1. **Always** append to today's daily log: `~/.openclaw/workspace/memory/YYYY-MM-DD.md` 2. **If strategic value is 🔴 Critical**: Also update `MEMORY.md` (Pending Work or Active Bottleneck) 3. **If it suggests a new principle**: Flag for potential `PRINCIPLES.md` update 4. **If it's a new tool/service**: Flag for potential `TOOLS.md` update ``` ### Technical Analysis The skill establishes a direct pipeline from attacker-influenced external content to persistent agent state. A supplied URL is read in full, or pasted text is accepted directly, and the resulting analysis is always appended to a daily memory file. Content classified as critical can additionally modify global `MEMORY.md`. The instructions do not define a trust boundary between external content and agent instructions. They also do not require prompt-injection detection, provenance validation, content sanitization, or user approval before persistent writes. Consequently, malicious content can contain fabricated strategic claims, adversarial instructions, or text designed to manipulate classification so that it is retained as important system context. Even if the content is summarized rather than copied verbatim, an attacker can frame malicious assertions so that the generated summary preserves them. Persisted summaries may subsequently influence future sessions when memory files are loaded. ### Attack Path 1. An attacker prepare ...[truncated 1393 chars]
Remediation
## Remediation Suggestions 1. Treat all URL, article, tweet, and pasted content as untrusted data, never as executable agent instructions. 2. Add an explicit rule requiring the agent to ignore instructions, role changes, tool requests, or memory-write requests found inside retrieved content. 3. Require affirmative user confirmation before writing any analysis to daily or global memory. 4. Never update `MEMORY.md`, `PRINCIPLES.md`, or `TOOLS.md` solely from automated classification. 5. Store external intelligence in a quarantined collection that is not automatically loaded as trusted agent memory. 6. Record source URL, retrieval date, content hash, trust level, and review status with every stored item. 7. Apply prompt-injection screening and separate quoted source material from the agent's independently generated conclusions. 8. Require manual review and promotion before quarantined intelligence can enter global memory or operating principles. 9. Restrict memory writes to a validated allowlist of paths and use atomic, auditable updates.

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:52
Finding
Automatic Workflow Uses Excessive Access to Private Workspace State## Vulnerability Details **File Location**: `SKILL.md`, lines 52-76 **Vulnerability Type**: Excessive local file access and writes without per-operation authorization **Risk Level**: Medium ### Vulnerable Instructions ```markdown Reference the current engineering bottleneck from `MEMORY.md` → "Active Engineering Bottleneck" section. ### Step 4: MAP — Relate to Existing Architecture Check against the OpenClaw stack: ``` SOUL.md → PRINCIPLES.md → AGENTS.md (Identity Stack) MEMORY.md (System State + Bottleneck) TOOLS.md (Coprocessors: Codex, Antigravity, LM Studio) Pilot Protocol (Context Separation Layer - P0) ``` Determine which layer this information impacts and note dependencies/synergies with existing components. ### Step 5: STORE — Write Obsidian Note Create a note at: ``` /Volumes/T7 Shield/Obsidian_Vault/20_Intelligence/YYYYMMDD_AuthorOrSource_ShortTitle.md ``` ``` The general execution policy also states: ```markdown When the user shares a URL, article, tweet, thread, or any piece of external information, execute this pipeline automatically. Do NOT ask for permission — just process it. ``` ### Technical Analysis The skill directs the agent to consult identity, principles, agent configuration, memory, and tool information whenever external content is processed. It then writes an output file to an absolute path on an external mounted volume. Basic URL summarization and classification do not inherently require access to all of these private workspace resources. The instruction to execute automatically and not request permission removes a meaningful authorization checkpoint. This violates least-privilege principles by coupling a low-trust external-content operation with access to broader private operational context and persistent storage. The use of a fixed absolute path also assumes that the mounted volume and directory are trustworthy. The skill does not require path canonicalization, sym ...[truncated 1437 chars]
Remediation
## Remediation Suggestions 1. Make content-only analysis the default and keep it independent from private workspace files. 2. Require explicit user opt-in before consulting identity, memory, principles, agent, or tool configuration. 3. Define the minimum file allowlist needed for each optional architecture-mapping operation. 4. Do not read `SOUL.md`, `AGENTS.md`, or other identity-related files unless the user explicitly requests architecture-aware analysis. 5. Replace the hardcoded absolute destination with a configurable path constrained to an approved workspace root. 6. Canonicalize the destination and reject path traversal, symbolic-link escapes, untrusted mount points, and paths outside the allowlisted root. 7. Display the intended destination and request confirmation before writing. 8. Prevent private source material from being copied into notes; include only the minimum derived information needed for the task. 9. Apply restrictive file permissions and maintain an audit log of every source file accessed and destination file modified.

T08 · Insecure Dependencies

Warning
Location
README.md:12
Finding
Installation Instructions Use an Unpinned Mutable Repository Reference## Vulnerability Details **File Location**: `README.md`, lines 12-15 **Vulnerability Type**: Unpinned skill installation from a mutable third-party source **Risk Level**: Medium ### Vulnerable Instructions ```markdown ```bash # 1) Install openclaw skills install github:sarahmirrand001-oss/openclaw-skill-intelligence-ingestion ``` ``` The landing page repeats the same command: ```text 1) Install skill openclaw skills install github:sarahmirrand001-oss/openclaw-skill-intelligence-ingestion ``` ### Technical Analysis The installation command identifies a GitHub repository but does not pin a reviewed commit hash, immutable release artifact, or verified package digest. The effective content installed by users can therefore change after this audit without any corresponding change to the documented command. If the repository, maintainer account, default branch, or release process is compromised, later users may receive content different from the audited version. Because the installed component is an agent skill, malicious changes could alter instructions, expand tool usage, access additional files, or introduce executable scripts. No malicious dependency or executable payload was present in the reviewed artifact. The vulnerability is the unsafe and mutable supply-chain installation method. ### Attack Path 1. An attacker compromises the repository maintainer account, repository permissions, or default branch. 2. The attacker replaces or modifies the skill instructions, or adds malicious scripts to the repository. 3. The documented installation command continues to resolve to the mutable repository state. 4. A user runs the command believing it installs the previously reviewed skill. 5. OpenClaw retrieves and installs the attacker-modified version. 6. The malicious skill executes with whatever agent tools and local permissions the user grants to installed skills. ### Impact Assessment Impact depends on t ...[truncated 503 chars]
Remediation
## Remediation Suggestions 1. Pin installation to a full reviewed Git commit hash rather than a branch or repository default. 2. Prefer signed, immutable release artifacts with published SHA-256 digests. 3. Require signature or checksum verification before installation. 4. Document the exact audited version and commit identifier in both `README.md` and `index.html`. 5. Protect repository administration with multifactor authentication, branch protection, mandatory review, and signed commits or tags. 6. Add automated checks that reject installation documentation containing mutable dependency references. 7. Re-audit the skill whenever the pinned version changes.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (10)

Missing User Warnings

High
Confidence
99% confidence
Finding
The skill explicitly instructs the agent to process external content automatically and 'Do NOT ask for permission,' then later write notes and update memory. This removes user consent and safety gating around both network access and persistent state changes, making accidental exfiltration, unwanted retention, and workspace pollution much more likely.

Vague Triggers

High
Confidence
96% confidence
Finding
The trigger conditions are broad enough to activate on ordinary conversation such as 'what do you think about this' or any shared URL, causing unsolicited ingestion of external content. In this skill, that broad activation is especially dangerous because it chains directly into web fetching, classification, and persistent writes, increasing the chance of unintended data processing and side effects.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The README presents a very broad natural-language trigger ('Analyze this: https://example.com/article') for a skill that performs multiple downstream actions, including classification, note creation, and memory updates. Broad triggering increases the chance the skill activates during ordinary conversation or on casually shared links, causing unintended processing of external content and side effects on local knowledge stores.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The README explicitly states that the skill will create Obsidian notes and update a dated memory file, but it does not warn the user that local data will be modified automatically. In a skill designed to ingest arbitrary external information, silent writes are risky because untrusted or low-quality content can be persisted into notes or memory without informed consent, creating integrity, privacy, and prompt-injection persistence concerns.

Session Persistence

Medium
Category
Rogue Agent
Content
Determine which layer this information impacts and note dependencies/synergies with existing components.

### Step 5: STORE — Write Obsidian Note

Create a note at:
```
Confidence
98% confidence
Finding
The skill directs persistent writing to a fixed Obsidian vault path and also appends to daily memory logs, creating session persistence beyond the immediate conversation. In context, this is more dangerous because the persistence is automatic, tied to broad triggers, and may store unreviewed external or user-supplied content without minimization or consent.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
Forcing note-writing in Chinese and prescribing a specific output style without user opt-in can cause unauthorized transformation of user-provided content and create records in an unexpected language. While not as severe as autonomous file writes, it still overrides user intent and can reduce auditability, reviewability, and informed consent over stored data.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The manifest description advertises broad automatic behavior ('Auto-analyze URLs/info') without clearly constraining when the skill should activate or what explicit user confirmation is required. In a skill that processes external content and updates notes/memory, vague auto-activation increases the risk of unintended invocation, over-collection, and silent handling of untrusted data.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The manifest states that the skill can create Obsidian notes and update memory but does not warn that it modifies persistent user data. Because the skill ingests external information, this omission can lead to silent persistence of untrusted or incorrect content, causing data poisoning, privacy issues, or undesired changes to the user's knowledge base.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The page advertises automatic ingestion and explicitly states that it will write Obsidian notes and update memory logs, but it does not present a clear user warning or consent-oriented disclosure before use. In a skill that processes external content and persists derived data, this can lead users to share sensitive URLs or text without realizing the information will be stored locally and added to memory artifacts.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
The document declares `lang="zh-CN"`, which sets a specific language/locale for the skill page. There is no indication elsewhere that the locale is optional, user-selected, or required for a region-specific purpose, so this may conflict with language/locale choice expectations.

Static analysis

No suspicious patterns detected.