Back to skill

Security audit

Strategic Decision

Security checks for vulnerabilities and agentic risk

Overview

The skill is a strategic-advice workflow, but it automatically creates, searches, and writes plaintext decision records in the user's home directory without clear upfront disclosure or consent.

Review before installing. This skill may be useful for structured strategy work, but it can store confidential decision summaries as plaintext in ~/.strategic-decisions and search old records in later sessions. Install only if you are comfortable with that retention model, or modify it to ask before reading or writing history, use a project-specific path, restrict file permissions, and provide deletion/retention controls.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
  • 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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:62
Finding

Unscoped Plaintext Persistence and Cross-Session Disclosure of Strategic Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 62–73 and 493–501
Vulnerability Type: Unprotected storage and cross-session disclosure of sensitive business data
Risk Level: Medium

Vulnerable Code

markdown
**Step A — Related Decision Discovery**

Search for past strategic decisions related to this topic:

```bash
mkdir -p ~/.strategic-decisions
ls -t ~/.strategic-decisions/*.md 2>/dev/null | head -10

If files exist, grep for keyword overlap with the current topic (3-5 key terms). If matches found, surface them:

  • "Prior decision found: '{title}' on {date}. Key overlap: {1-line summary}."
  • Ask via AskUserQuestion: "Build on this prior decision or start fresh?"
text

```markdown
### Persist Decision (AGGRESSIVE and SELECTIVE modes)

After writing the Decision Summary, write it to disk so the thinking survives beyond this conversation.

```bash
mkdir -p ~/.strategic-decisions
DATETIME=$(date +%Y%m%d-%H%M%S)
SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | cut -c1-40)

Write to ~/.strategic-decisions/{date}-{slug}.md

text

### Technical Analysis

The Skill instructs the Agent to persist strategic decision summaries in a predictable, shared home-directory path as plaintext. These records can contain confidential strategy, assumptions, risks, implementation plans, stakeholder information, and other sensitive organizational context.

The storage design does not specify restrictive file permissions, encryption, project isolation, user or tenant ownership metadata, retention limits, deletion controls, or content redaction. It also instructs subsequent runs to search these records and disclose matching titles and summaries before obtaining explicit authorization to read historical data.

Although the topic-derived filename slug is sanitized and no command-injection path is evident in the shown command, sanitization does not address the confidentiality and isolation weaknesses.

### Atta
...[truncated 1604 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit informed consent before persistence

    • Default to ephemeral processing.
    • Explain what fields will be stored, where they will be stored, and for how long.
    • Obtain approval before writing each decision record.
  2. Require authorization before historical lookup

    • Do not automatically inspect prior records.
    • Ask whether the user wants to search a specified project-scoped history.
    • Do not reveal titles, dates, summaries, or excerpts until access is authorized.
  3. Isolate records by user, tenant, and project

    • Use a storage path tied to verified ownership and project identity.
    • Prevent unrelated sessions from searching a global home-directory collection.
    • Enforce access checks before reading or listing records.
  4. Apply restrictive filesystem permissions

    • Create storage directories with mode 0700.
    • Create decision files with mode 0600.
    • Set a restrictive umask, such as 077, before creation.
    • Reject storage locations with unsafe ownership or permissions.
  5. Minimize and protect persisted content

    • Redact credentials, personal data, customer information, and confidential raw context.
    • Store only the minimum summary required for the feature.
    • Use encryption at rest with keys scoped to the authorized user or project where feasible.
  6. Add lifecycle controls

    • Define an expiration period.
    • Provide commands to list, inspect, export, and securely delete stored decisions.
    • Avoid including these files in general-purpose backups unless explicitly approved.
  7. Limit search disclosure

    • Return only opaque record identifiers initially.
    • Require explicit selection before loading content.
    • Record access events in an audit log without logging sensitive document contents.
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README text is written only in Chinese and states the skill is for self-testing use, with no indication that users may choose another language or that the locale is required for a region-specific purpose. Under the policy, forcing a specific language without opt-in or documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description says to use the skill whenever executives or product leaders need strategic decisions on broad areas like product, growth, market, technology, or resource allocation. This scope is so expansive that it overlaps with common advisory conversations and does not provide clear boundaries or exclusion conditions for when the skill should or should not activate.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
90% confidence
Finding

Creating and enumerating ~/.strategic-decisions establishes session persistence and local state inspection in the user's home directory. This can surface sensitive historical context and normalize retention of strategic data without necessity for the immediate task.

Content

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

Search for past strategic decisions related to this topic:

bash
mkdir -p ~/.strategic-decisions
ls -t ~/.strategic-decisions/*.md 2>/dev/null | head -10

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to read another local skill file and follow it directly inline, effectively chaining execution from untrusted local content. This expands the skill's authority and behavior surface, allowing indirect instruction injection or unreviewed capabilities to be pulled into the session without a fresh security check.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
* What would make this analysis beautiful? Not just correct — elegant. Is there a framing that would make a new team member say "oh, that's obvious now"?
* What additional analysis would make this decision a platform for future decisions?

**SELECTIVE:** If any accepted cherry-picks from Step 0D affect the analysis, evaluate their fit here. Flag any that create inconsistencies — this is a chance to revisit.

**Required output:** Clear diagnosis of the situation with supporting data.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill directs the agent to persist strategic decision summaries to ~/.strategic-decisions, creating durable local state beyond the immediate advisory task. This can expose sensitive business information, create unintended retention of user data, and modify the host environment without an explicit, informed user consent step tied to the write action.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill includes disk-write behavior in its body but does not clearly disclose this side effect in the top-level description or require a dedicated consent checkpoint. Hidden persistence is risky because users may invoke what appears to be a reasoning skill without realizing it will create long-lived local artifacts.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
97% confidence
Finding

The instruction to write a structured markdown file into ~/.strategic-decisions is explicit persistent storage of potentially sensitive strategic content. This creates confidentiality and retention risks, especially in shared environments or when users do not expect local artifacts to be produced.

Content

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

SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | cut -c1-40)

text

Write to `~/.strategic-decisions/{date}-{slug}.md` with this format:

```markdown
---

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill performs local filesystem discovery by listing and grepping prior decision documents in the user's home directory. Even though framed as convenience, this goes beyond core strategic advising and may reveal unrelated sensitive business records from prior sessions without an explicit access consent step.

Content

No source excerpt is available for this finding.