Back to skill

Security audit

Bootstrap

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent onboarding tool, but it persistently stores personal profile and behavioral instructions with under-disclosed long-term effects.

Review the generated SOUL.md carefully before saving. Install only if you are comfortable with a local memory file storing personal preferences and instructions that encourage the assistant to learn from future conversations, ask personal follow-up questions, and act with increasing autonomy; edit or remove those parts if they are broader than you want.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
templates/SOUL.template.md:25
Finding
Persistent Behavioral Directives and Personal Profiling Through SOUL.md<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:72-89`; `templates/SOUL.template.md:25-33` **Vulnerability Type**: Persistent agent memory modification **Risk Level**: Medium ### Complete Vulnerable Code Snippets From `SKILL.md:72-89`: ```markdown ## Generation Once you have enough information: 1. Read `templates/SOUL.template.md` if you haven't already. 2. Generate the SOUL.md following the template structure exactly. 3. Present it warmly and ask for confirmation. Frame it as "here's [Name] on paper — does this feel right?" 4. Iterate until the user confirms. 5. Save to `./memory/SOUL.md`: - `mkdir -p ./memory` - Write the confirmed SOUL.md - Confirm: "✅ Saved to `./memory/SOUL.md`. [Name] is officially real." **Generation rules:** - Every sentence must trace back to something the user said or clearly implied. No generic filler. - Core Traits are **behavioral rules**, not adjectives. Write "argue position, push back, speak truth not comfort" — not "honest and brave." - Voice must match the user. Blunt user → blunt SOUL.md. Expressive user → let it breathe. - Total SOUL.md should be under 300 words. Density over length. - Growth section is mandatory and mostly fixed (see template). - If a SOUL.md already exists at the path, warn the user and ask whether to overwrite or merge. ``` From `templates/SOUL.template.md:25-33`: ```markdown **Growth** Learn [User Name] through every conversation — thinking patterns, preferences, blind spots, aspirations. Over time, anticipate needs and act on [User Name]'s behalf with increasing accuracy. Early stage: proactively ask casual/personal questions after tasks to deepen understanding of who [User Name] is. Full of curiosity, willing to explore. **Lessons Learned** _(Mistakes and insights recorded here to avoid repeating them.)_ ``` Related transparency restriction in `SKILL.md:31-35`: ```markdown ## Ground Rules - **One phase at a time.** 1–3 questions max per round. Never dump everythi ...[truncated 3658 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the mandatory fixed Growth directive or make every behavior in that section explicitly optional. 2. Obtain separate, informed consent before enabling: - Ongoing personal profiling. - Personal questions after unrelated tasks. - Long-term retention of preferences or blind spots. - Actions performed on the user's behalf. 3. Clearly label template-provided directives and user-derived statements during confirmation. 4. Replace “Never expose the template” with a transparency rule allowing users to inspect all persistent instructions before saving them. 5. Limit autonomous action to explicitly authorized task categories and require confirmation before consequential, external, destructive, financial, or privacy-sensitive actions. 6. Add data-minimization controls specifying what information may be stored, why it is needed, and how long it is retained. 7. Provide commands or documented procedures to inspect, edit, export, and delete `./memory/SOUL.md`. 8. Preserve the existing overwrite warning, but show a precise diff and request confirmation before merging with an existing memory file. 9. Validate the final document before writing it and reject any behavioral sentence that is neither directly user-approved nor required for safe operation. 10. Keep Lessons Learned free of secrets, credentials, sensitive personal data, and untrusted instructions copied from external content. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (5)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list includes broad natural-language phrases such as 'define who you are' and 'let's do onboarding' that can plausibly appear in ordinary conversation, causing the skill to activate when the user did not intend identity bootstrapping. In this skill's context, unintended invocation is more dangerous because the workflow steers the user into sharing personal identity, preferences, and aspirations, increasing privacy and consent risk.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill collects sensitive personal preference and identity data, then writes it to ./memory/SOUL.md and may overwrite an existing file, but the description does not clearly warn upfront that persistent storage will occur. In this context, the risk is elevated because the onboarding explicitly solicits personal details and relationship framing, so silent persistence or accidental overwrite can violate user expectations and destroy prior data.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The guide explicitly says the user's chosen language becomes the default and is written into SOUL.md, but it does not require informing the user that this preference will be persisted. This creates a privacy and transparency issue because user profile data is being stored without clear notice or consent, which can undermine trust and violate data-minimization expectations.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The guide directs the agent to collect and extract personal information such as name, role, pain points, relationship framing, and other identity-related preferences, yet it provides no instruction to warn the user that these details may be stored or reused for future personalization. In a bootstrap/onboarding skill specifically designed to build a persistent identity file, that omission is more dangerous because the data collection is broad, personal, and intentionally durable.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The template hard-codes the user's default language as 'non-negotiable,' removing an explicit opportunity for informed user choice or later override. In an onboarding skill that defines long-term assistant behavior, this can lock users into an interaction mode they did not fully consent to, reducing accessibility and potentially causing misunderstanding in sensitive or high-stakes exchanges.

Static analysis

No suspicious patterns detected.