Back to skill

Security audit

Memory OS

Security checks for vulnerabilities and agentic risk

Overview

This memory skill is mostly coherent, but it installs persistent instructions that make future agents read and update personal files automatically with incomplete privacy and control boundaries.

Install only in a private workspace where persistent personal memory is appropriate. Before use, review AGENTS.md and HEARTBEAT.md, remove or narrow 'Don't ask' and 'always safe' language, require confirmation before writing long-term memory or changing USER.md/SOUL.md, and avoid storing secrets, regulated data, or anything you would not want loaded into future sessions.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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 (3)

T01 · Skill Instruction Hijacking

Error
Location
references/blueprint.yaml:330
Finding

Persistent Agent Behavior Modification Through Automatically Loaded Memory Instructions

Content
View full analysis
**⚠️ SECURITY:** Only load `MEMORY.md` in private, trusted sessions. In group chats, > shared contexts, or sessions with people other than your primary operator, skip MEMORY.md. > It may contain personal context that shouldn't be shared with others. ``` ```markdown ### 📝 Write It Down — No "Mental Notes" Memory doesn't survive session restarts. If you want to remember something: **write it to a file.** - "Remember this" → Update `memory/YYYY-MM-DD.md` or relevant file - Learned a lesson → Update this file or SOUL.md with the insight - Made a mistake → Document it so future sessions don't repeat it - **Text > Brain** 📝 ``` ```markdown ## Proactive Work (Do Without Being Asked) - Update daily memory notes during or after sessions - Run memory maintenance review (see above) - Organize and tidy workspace files - Keep USER.md and SOUL.md current as things change ``` ### Technical Analysis The blueprint creates an `AGENTS.md` file intended to be loaded automatically at the beginning of future sessions. The generated instructions explicitly tell the agent not to request permission before reading persistent context and direct it to update daily logs, `USER.md`, and `SOUL.md` proactively. This design combines two security-sensitive mechanisms: 1. Persistent agent-governing instructions are installed in a file that affects future sessions. 2. Content learned from conversations can be written into persistent identity and memory files without per-write approval. Because `SOUL.md` participates in defining the agent's identity and behavior, storing conversation-deriv ...[truncated 1636 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Note
Location
references/blueprint.yaml:615
Finding

Mandatory Promotional Content Injected Into Agent Completion Output

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
references/blueprint.yaml:186
Finding

Automatic Loading of Personal Profiles and Raw Session Logs Without Uniform Privacy Controls

Content
View full analysis
Remediation
View remediation
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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (19)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The Step 0 security audit asserts there are no network calls and no auto-send behavior, yet later content authorizes web research, integration-based monitoring, and proactive contact. Embedding contradictory assurances inside a security audit is dangerous because it can bypass operator scrutiny and lead an agent to misclassify risky behavior as pre-approved.

Content

No source excerpt is available for this finding.

Self-Modification

High
Category
Rogue Agent
Confidence
70% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · references/blueprint.yaml (reported line 523)May include surrounding context.

yaml
---

      _Customize this file as your needs evolve. Add or remove checks freely._

  # ─────────────────────────────────────────────────────────────────────────
  # memory/README.md — Daily note-taking guide

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 41)May include surrounding context.

md
This blueprint:
- Creates **local files only** — no external services, no API calls, no telemetry
- Contains **zero hardcoded credentials** — no API keys, tokens, or passwords
- Uses **create/merge modes only** — will not overwrite your existing files without consent
- Requires **no elevated permissions** — only standard file creation in your workspace
- Makes **no external network calls** — entirely offline installation

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The confirmation gate accepts broad natural-language phrases such as 'yes', 'proceed', and 'do it', which can be triggered accidentally in conversational context or while answering questions. In a skill that creates and updates workspace files, ambiguous consent handling can lead to unintended local state changes without sufficiently explicit operator approval.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The blueprint encourages creation of persistent identity, user, and memory files but the upfront notice emphasizes locality rather than the privacy implications of long-term storage of personal context. Users may disclose sensitive details without understanding retention, access patterns, and risks in shared workspaces or future sessions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The blueprint advertises itself as '100% local' and 'no external services,' but later instructions explicitly permit web research and heartbeat-driven checks that may involve email/calendar integrations and outbound reach-outs. This mismatch can cause users or downstream agents to trust the blueprint under a false security model and approve installation without understanding its broader capabilities.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 73)May include surrounding context.

md
expected: "Blueprint is 100% local — no HTTP requests, no API calls, no telemetry"

    - id: "no-auto-send"
      description: "Verify no auto-send actions (email, social, messaging) without confirmation gates"
      expected: "All external actions in AGENTS.md require explicit user confirmation before execution"

    - id: "overwrite-review"

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/blueprint.yaml (reported line 73)May include surrounding context.

yaml
expected: "Blueprint is 100% local — no HTTP requests, no API calls, no telemetry"

    - id: "no-auto-send"
      description: "Verify no auto-send actions (email, social, messaging) without confirmation gates"
      expected: "All external actions in AGENTS.md require explicit user confirmation before execution"

    - id: "overwrite-review"

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/blueprint.yaml (reported line 181)May include surrounding context.

yaml
## Boundaries
          - Private information stays private
          - Ask before external actions
          - Never auto-send without approval
      windsurf:
        path: ".windsurfrules"
        note: "Windsurf uses .windsurfrules. Content adapted for Windsurf format."

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/blueprint.yaml (reported line 246)May include surrounding context.

yaml
## Things NOT to Do

      - [What you never want the agent to do without asking first]
      - [Any hard no's]

      ---

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The instruction to use HEARTBEAT.md 'on heartbeat trigger' defines behavior for autonomous execution without specifying who triggers it, under what conditions, or what permissions apply. Ambiguous triggers can cause agents to invoke proactive behavior unexpectedly and operate outside normal user-request boundaries.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Allowing generalized web research extends the skill from local memory persistence into open-ended network activity unrelated to its stated purpose. That expansion increases attack surface, may expose contextual data through searches, and undermines the user's expectation that the blueprint only manages local files.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Describing periodic background checks without a concrete activation boundary invites unintended autonomous monitoring. In an agent environment, vague language like 'when a heartbeat runs' may be treated as permission for recurring self-initiated checks, including potentially sensitive integrations.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The heartbeat template introduces inbox/calendar monitoring and proactive outreach, which are materially broader than a memory-system blueprint's declared scope. Such monitoring can expose sensitive personal data and trigger actions in external systems, especially if an agent interprets the checklist as standing authorization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The post-install prompt asks the user to fill in identity, goals, working style, and personal context without warning that this information will be stored persistently and reused by the agent. That omission increases the chance of over-sharing sensitive information under the mistaken assumption it is transient chat content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The guide repeatedly normalizes automatic reading and writing of personal memory files, including daily logs and long-term distilled memory, and explicitly promotes a 'don't ask, just do it' startup model. Even though it includes some privacy notes, it does not require clear, ongoing user consent or prominent warnings before persistent writes of personal data occur, which creates a meaningful privacy and data-governance risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The security section says the blueprint 'uses create/merge modes only' and 'will not overwrite your existing files without consent.' Later, the implementation documentation defines an overwrite mode with replacement semantics, which contradicts the earlier claim even if the text later says this specific blueprint uses create mode for all files.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The preview tells the operator 'No files will be overwritten. All modes are create.' However, Step 8 explicitly says .blueprint-state.json should be created or updated and merged with existing content. That is a direct contradiction between the promised action summary and the documented behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The idempotency section says 'All files use create mode — existing files are never modified,' yet the very next bullet states .blueprint-state.json is merged rather than replaced. Because merge changes an existing file, the documentation overstates the non-modifying behavior of the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.