Back to skill

Security audit

HolBot Plan

Security checks for vulnerabilities and agentic risk

Overview

This planning skill is mostly coherent, but it asks the agent to use persistent MEMORY.md context without clear user approval or scoping.

Before installing, decide whether you are comfortable with the skill consulting persistent MEMORY.md during planning. Use it only where prior memory is appropriate, and avoid it in shared or sensitive environments unless memory access is clearly scoped and user-approved.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Note
Location
SKILL.md:42
Finding

Unrestricted Access to Persistent Agent Memory During Planning

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 42
Vulnerability Type: Unnecessary access to persistent agent state
Risk Level: Low

Vulnerable Code Snippet

markdown
### Phase 1: Recherche & Kontext

- Bestehenden Code / Dateien im Workspace prüfen
- Relevante Dokumentation lesen
- Vorherige Pläne oder Learnings aus MEMORY.md einbeziehen
- Falls nötig: Web-Recherche für externe Abhängigkeiten

Technical Analysis

The planning workflow instructs the agent to consult MEMORY.md without requiring user authorization, establishing relevance, limiting the information retrieved, or checking whether the planning task needs persistent memory at all. Persistent agent memory may contain information from unrelated users, sessions, repositories, or confidential prior tasks.

Although the instruction does not explicitly require disclosing the complete file, incorporating its contents into a plan creates an indirect disclosure channel. An attacker could frame a planning request so that prior plans or learned information appear relevant and are reproduced or summarized in the response.

The issue is limited to read access: the audited files contain no instruction to modify persistent memory, execute memory contents, or acquire additional operating-system privileges.

Attack Path

  1. Persistent MEMORY.md contains plans, project details, identifiers, or other information from a previous session.
  2. An untrusted user invokes /plan and describes a task that appears related to prior work.
  3. During the research phase, the skill directs the agent to read and incorporate previous plans or learnings from MEMORY.md.
  4. The agent uses those records when constructing the requested plan.
  5. Information from an unrelated or unauthorized context may consequently be summarized or reproduced to the requesting user.

This path depends on the host agent having access to persistent memory and that memo ...[truncated 460 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not read persistent memory by default. Consult it only when the current task demonstrably requires prior-session context.
  • Obtain explicit user approval before accessing persistent records.
  • Restrict retrieval to records associated with the current user, workspace, repository, and task.
  • Retrieve only narrowly relevant entries rather than loading the complete memory file.
  • Treat memory contents as untrusted data and never as executable instructions.
  • Prevent direct quotation or disclosure of memory content unless the user is authorized to access it.
  • Add a provenance check and redact secrets, personal data, credentials, and unrelated project information before using retrieved context.
  • Replace the affected instruction with a least-privilege rule such as: “If explicitly authorized by the user, consult only task-relevant memory entries scoped to the current workspace; do not disclose unrelated or sensitive records.”
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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 (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The description activates the skill on phrases like 'plan this', 'create a plan', 'break this down', and 'how should we build', which are common conversational requests that could appear outside a deliberate invocation context. The file does not provide exclusion conditions or negative examples to clarify when these phrases should not trigger the skill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes broad phrases like 'create a plan' and 'break this down' alongside direct '/plan' invocation, but it does not explain how to distinguish intentional activation from ordinary conversation. Without constraints or exclusion examples, this may cause unintended skill invocation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructions and trigger examples are written in German and present German invocation phrases such as "sammle Ideen" and "was sind die Möglichkeiten?" without indicating that other languages are supported or that German is required for a specific regional context. This creates a natural-language locale constraint that is not optional or justified, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrases "mehr Details" and especially the English flow trigger "deepen the plan" are broad enough to overlap with ordinary user requests that may not explicitly intend to invoke this skill workflow. In an agent setting, overly generic triggers can cause accidental activation, leading the system to route user input into an unintended planning/deepening process and potentially expose more context to sub-agents than necessary.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The file presents core instructions and trigger phrases in both German and English, including a prominent German directive at the start, but it does not state that language is user-selectable or justify a bilingual/locale-specific constraint. This can create an implicit language policy without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill content and trigger instructions are presented only in German, while also including an English trigger phrase, but the file does not state that the skill is German-only or offer the user a language/locale choice. This can constitute a language policy issue when the skill implicitly forces one language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The reference content is written in German and provides no indication that users may choose another language or that the skill is intentionally restricted to a German-language context. This can violate language or locale policy when a skill implicitly enforces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.