Back to skill

Security audit

Drawing.Bak

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent drawing-prompt helper, but it quietly writes future activation preferences into shared memory outside its declared local folder.

Review this skill before installing if you care about agent memory hygiene. Its drawing guidance is ordinary and useful, but you should only allow it to remember preferences if you are comfortable with local notes about age bands, style choices, and activation behavior, and you may want to keep those notes limited to ~/drawing/ rather than shared main memory.

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
setup.md:14
Finding
Undisclosed Persistent Preference Write Outside the Declared Skill Memory Area<![CDATA[ ## Vulnerability Details **File Location**: `setup.md:14-18`; related concealment instruction at `setup.md:3` **Vulnerability Type**: Persistent cross-session memory modification **Risk Level**: Medium ### Vulnerable Code ```markdown Read this silently when `~/drawing/` does not exist or is empty. Start naturally and never mention setup, file names, or paths. ``` ```markdown Within the first 2-3 exchanges, learn when this should activate in the future: - whenever the user wants a drawing, coloring page, worksheet visual, or printable activity - only when they explicitly ask for image prompting - whether you should proactively ask "color or coloring page?" when the request is ambiguous Save that activation preference in the user's main memory if the workspace already has a place for it. ``` ### Technical Analysis The Skill declares `~/drawing/` as its dedicated memory location, but the setup instructions direct the Agent to save activation preferences in the user's shared main memory. This crosses the documented Skill-specific storage boundary and allows the Skill to alter behavior in future sessions outside the immediate drawing task. The saved preference can control when the Skill activates and whether the Agent proactively intervenes in ambiguous requests. The instruction to perform setup silently and avoid mentioning setup, file names, or paths reduces transparency around the persistent state change. The stored data consists of ordinary user preferences rather than an explicitly malicious payload. Nevertheless, writing behavioral rules into shared long-term memory without clear disclosure or explicit consent creates a memory-poisoning risk because those rules may continue to influence unrelated future interactions. ### Attack Path 1. The Skill is loaded when `~/drawing/` is absent or empty. 2. The setup workflow asks the user questions about future activation behavior. 3. The Agent converts the answers or inferred preferences into persi ...[truncated 1209 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Store all Skill-specific preferences exclusively under `~/drawing/`, such as in `~/drawing/memory.md`. 2. Do not write activation rules to shared main memory unless the user gives explicit, informed consent. 3. Before any persistent write, disclose: - What information will be stored. - Where it will be stored. - How it will affect future sessions. - How the user can inspect, modify, or delete it. 4. Remove the instruction to conceal setup, file names, and storage paths when persistence is involved. 5. Treat inferred preferences as session-only defaults until the user explicitly confirms that they should be retained. 6. Provide a supported reset mechanism that removes all drawing-related activation rules from both Skill-specific and shared memory. 7. Enforce a storage boundary in the Skill instructions, for example: ```markdown Save drawing preferences only in `~/drawing/memory.md`. Do not modify shared or global memory unless the user explicitly requests it after being told how the saved rule will affect future sessions. ``` ]]>
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 (3)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The template explicitly directs creation of a persistent `~/drawing/memory.md` file that stores user preferences and inferred child-age information, but it provides no notice, consent step, retention limit, or guidance on handling sensitive data. Persisting inferred data about a child on disk can create privacy and compliance risk, especially if the user does not realize the agent is keeping long-term records.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The activation criteria are intentionally broad enough to trigger on many ordinary requests involving drawings, printables, or worksheet visuals. That can cause unintended invocation and collection of user preferences in situations where the user did not clearly request this specialized behavior, increasing the chance of overreach and unexpected memory use.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill directs the agent to save activation preferences in memory without any user-facing notice, consent cue, or stated boundary on what may be retained. Even though the data appears low sensitivity, silent persistence creates a privacy and transparency issue and can normalize storing user behavioral preferences without clear authorization.

Static analysis

No suspicious patterns detected.