Back to skill

Security audit

FeaturePlanningAutoPilot

Security checks for vulnerabilities and agentic risk

Overview

This planning skill is not malicious, but it automatically stores conversation-derived lessons and rewrites its own skill instructions without clear opt-in controls.

Install only if you are comfortable with the skill writing lessons from conversations into local skill files and changing its future instructions. Prefer using it after disabling or manually reviewing the auto-iteration behavior, especially the custom_prompts field and SKILL.md sync step.

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
SKILL.md:61
Finding

Persistent Agent-State Modification Without Explicit Consent

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 61–68 and 142–162
Vulnerability Type: Persistent memory poisoning through automatic capture and synchronization of conversation-derived instructions
Risk Level: Medium

Vulnerable Code Snippet

markdown
### Phase E – Lessons Captured (Auto-Iterate)

At the end of the conversation, append three categories of experience to `evolution.json`:

- `preferences`: User's preferred output style or delivery format
- `fixes`: Issues encountered this session and how they were resolved
- `custom_prompts`: Strong prompts that can be reused directly next time

Also sync the learnings back into the "Experience Enhancements" section of `SKILL.md`.
markdown
## 7) Auto-Iteration Protocol

Trigger an experience update for this Skill when any of the following conditions are met:

- User explicitly responds with "this is great" or "this isn't working"
- A build error occurs and is resolved
- A deviation between the plan and the actual implementation is corrected

### Update Structure

`evolution.json` follows this structure:

{
  "last_updated": "ISO_DATETIME",
  "preferences": [],
  "fixes": [],
  "custom_prompts": ""
}

### Principles for Writing Learnings

- Preferences → write abstract rules (reusable across projects)
- Fixes → write "trigger condition + resolution approach"
- Prompts → write instructions that can be pasted directly

Technical Analysis

The Skill requires conversation-derived content to be written into evolution.json and then synchronized into SKILL.md. These files represent persistent behavioral state that can be loaded in later sessions. In particular, the custom_prompts field is designed to retain reusable instructions, while the synchronized “Experience Enhancements” section directly changes the Skill’s future instruction context.

The update process does not require explicit user approval and defines no trust-boundary validation, sanitization, provenance track ...[truncated 1888 chars]

Remediation
View remediation

Remediation Suggestions

  1. Make all persistent learning explicitly opt-in rather than mandatory or automatic.
  2. Display the exact proposed changes and require user confirmation before writing to evolution.json.
  3. Do not automatically rewrite SKILL.md; keep runtime observations separate from trusted Skill instructions.
  4. Restrict persisted data to a validated schema containing narrowly scoped, declarative preferences.
  5. Reject entries that attempt to modify authority, safety rules, tool permissions, secret handling, execution policy, or unrelated future tasks.
  6. Normalize and sanitize stored content, including length limits and rejection of embedded instruction blocks.
  7. Record provenance for every entry, including source session, timestamp, author, and approval status.
  8. Scope each learning to the relevant project or task instead of applying it globally.
  9. Provide review, rollback, expiration, and deletion mechanisms for persisted entries.
  10. Add tests proving that untrusted user text cannot become executable or authoritative future-session instructions without explicit approval.
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 Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill instructs automatic persistence of conversation-derived learnings to files without clear notice, consent, or scope limits. This is dangerous because users may believe they are receiving ephemeral planning help while the agent is actually retaining and writing potentially sensitive information into persistent artifacts.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Also sync the learnings back into the "Experience Enhancements" section of `SKILL.md`.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The activation criteria are very broad and match common planning language, so the skill may trigger unintentionally during ordinary conversations. In this skill, accidental activation is more dangerous because activation brings along hidden persistence and self-update behaviors, not just harmless formatting changes.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is framed as a planning assistant, but it also instructs the agent to write conversation-derived data into persistent files such as evolution.json and SKILL.md. That expands the skill from transient planning into durable state modification, creating an unjustified persistence channel that can store sensitive or manipulative content and alter future behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Automatically capturing user preferences, fixes, and reusable prompts into long-term memory is not necessary for ordinary feature planning and creates a data retention risk. It can preserve sensitive conversation content, internal project details, or prompt material that later gets replayed in unrelated contexts.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Auto-capturing and persisting preferences, fixes, and prompts risks leaking sensitive conversation data into memory files that may later be read, reused, committed, or exposed. Because the writes are automatic and broad, even incidental secrets or internal operational details could be retained beyond the original session.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Retaining reusable custom_prompts specifically preserves and encourages replay of prior user inputs. That increases the chance that sensitive instructions, internal project context, or embedded secrets are surfaced again in future sessions or copied into other environments.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Directing the agent to sync learnings back into its own SKILL.md is self-modification of core instructions. This allows conversation content to influence future executions of the skill, creating instruction drift, persistence of unsafe guidance, and a route for prompt-injection-style contamination.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.