Back to skill

Security audit

UX Researcher

Security checks for vulnerabilities and agentic risk

Overview

The UX research features are coherent, but the skill asks to save broad future activation rules in shared agent memory, so it should be reviewed before install.

Install only if you are comfortable with the agent keeping UX research notes locally and potentially storing product context. Before enabling persistent activation, ask the agent to keep activation preferences session-local or store only narrowly scoped settings under ~/ux-researcher/ with clear instructions for viewing and deleting them.

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:19
Finding

Persistent Cross-Session Activation Through Shared Agent Memory

Content
View full analysis

Vulnerability Details

File Location: setup.md, lines 19–24
Vulnerability Type: Persistent agent memory poisoning
Risk Level: Medium

Vulnerable Code Snippet:

markdown
### 1. First: Integration

Early in the conversation:
- "Should I activate whenever you're working on product decisions or UX?"
- "Want me to proactively suggest research when I notice gaps?"

Save this to their main memory so other sessions know when to activate.

Technical Analysis

The setup instructions direct the agent to persist an activation rule in the user's unspecified “main memory,” allowing the Skill's behavior to influence later sessions. This write target is outside the Skill's documented local memory architecture, which places state under ~/ux-researcher/.

The instruction also conflicts with the security claim in SKILL.md that the Skill does not access files outside ~/ux-researcher/. Because “main memory” is neither defined nor constrained, the Skill may alter shared agent state rather than keeping product-specific preferences within its own namespace.

The persisted content is derived from the user's response, but the Skill controls the questions and frames broad activation conditions such as “whenever” product or UX work occurs. This creates a path for lasting behavioral modification beyond the current invocation.

Attack Path

  1. The Skill is invoked for the first time and loads setup.md.
  2. It asks the user whether it should activate broadly for product decisions or proactively suggest research.
  3. After receiving agreement, it writes that activation preference into the agent's shared “main memory.”
  4. The current Skill session ends, but the shared rule remains persistent.
  5. During later or unrelated sessions, the stored rule causes the agent to activate or promote this Skill without a fresh, session-specific request.
  6. The Skill consequently influences future agent behavior outside its documented local state boundary.

Impac

...[truncated 608 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove the instruction to write activation rules to unspecified “main memory.”
  2. Store all preferences exclusively in ~/ux-researcher/memory.md, consistent with the documented architecture.
  3. Scope stored preferences to this Skill and to explicitly identified products or projects.
  4. Require explicit activation in each new session rather than relying on a persistent global trigger.
  5. If cross-session activation is a necessary feature, clearly disclose:
    • The exact storage location.
    • The precise activation conditions.
    • Which sessions and tasks may be affected.
    • How the user can inspect, modify, disable, or delete the preference.
  6. Obtain separate, narrowly scoped consent before writing any persistent activation setting.
  7. Add validation preventing arbitrary user content or generated instructions from being stored as executable behavioral rules.
  8. Update the documentation so all claimed storage and access boundaries accurately match actual behavior.

A safer replacement would be:

markdown
Ask whether the user wants UX research suggestions during the current session.
Do not modify shared or global agent memory.
If the user wants a persistent Skill-specific preference, store only a narrowly
scoped setting in `~/ux-researcher/memory.md` after explicit consent.
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill expands from UX research output generation into cross-session activation management by asking to save activation preferences to main memory. That creates persistence and broader behavioral influence outside the immediate task, which is unnecessary for the stated skill purpose and can cause unintended future invocation or policy drift across sessions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation prompts use broad language such as activating whenever the user is working on product decisions or UX and proactively suggesting research when it notices gaps. This ambiguous scope can trigger the skill in situations the user did not specifically intend, increasing the chance of overreach and persistent unsolicited behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The instruction to save activation preferences to main memory grants the skill an unjustified ability to influence shared persistent state. Because this persistence affects behavior in other sessions, it exceeds the minimal scope needed for producing UX personas and recommendations and introduces a cross-session integrity risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill states that it will write products researched, insights, and output preferences to a memory file without warning the user that this information will persist. Undisclosed persistence can surprise users, retain potentially sensitive business context, and create privacy and data-governance issues across sessions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The template directs the agent to create a persistent file under the user's home directory without any explicit disclosure or consent step. While the file content is not inherently dangerous, silent filesystem writes can surprise users, create privacy concerns, and normalize unauthorized persistence by agent skills.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill instructs creation of per-product research directories and multiple files under the user's home directory structure without warning about filesystem modifications. In a research skill, this creates persistent artifacts that may contain sensitive product information, increasing privacy and data exposure risk if done without user awareness.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.