Back to skill

Security audit

research-synthesizer

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does ordinary web research, but it also tells the agent to save important research summaries into per-contact memory without clear consent or retention controls.

Review before installing. The research workflow is understandable, but you should only use it if you are comfortable with important research topics being saved into contact-scoped memory. Prefer a version that asks before saving, shows exactly what will be stored, avoids phone-derived identifiers, and provides retention and deletion controls.

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

Unconsented Persistent Storage of Attacker-Influenced Research Content

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 253
Vulnerability Type: Persistent memory poisoning and privacy-sensitive state retention
Risk Level: Medium

Complete Code Snippet:

markdown
8. After delivering research — write summary to `memory/whatsapp/dms/<PHONE-sanitized>/context.md` if topic was important

Technical Analysis

The skill instructs the agent to write research summaries into persistent, conversation-specific memory after completing a request. This behavior is not necessary for the skill's declared research-synthesis function and does not require explicit user consent.

The condition “if topic was important” is subjective and has no defined validation, data-minimization, retention, or deletion controls. Because research topics and conclusions originate from user input and externally retrieved sources, an attacker can influence the content written to this memory. If later sessions consume the stored context, crafted, inaccurate, or malicious claims may continue to affect future responses.

The path also scopes retained information using a sanitized phone-derived identifier. Although sanitization is referenced, no sanitization procedure or privacy control is defined. This creates a risk of retaining sensitive research interests or conclusions in a location associated with an identifiable conversation.

Attack Path

  1. An attacker or untrusted participant submits a research request containing crafted claims, misleading framing, or sensitive subject matter.
  2. The skill performs searches and creates a summary influenced by that input and by external web content.
  3. The agent determines subjectively that the topic is “important.”
  4. The summary is written to memory/whatsapp/dms/<PHONE-sanitized>/context.md without explicit approval.
  5. A future session reads or relies on the persisted context.
  6. The stored claims influence later answers, allowing stale or atta ...[truncated 708 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove automatic memory persistence unless it is essential to the documented skill function.
  2. Require explicit, informed user consent before storing any research summary.
  3. Show the exact proposed memory content and destination before writing it.
  4. Replace the subjective “important” condition with a deterministic, user-controlled retention policy.
  5. Apply strict data minimization: exclude sensitive topics, personal data, credentials, identifiers, and unsupported external claims.
  6. Treat all user input and web-derived material as untrusted data; prevent stored content from being interpreted as agent instructions.
  7. Store provenance, timestamps, confidence, and expiration metadata with any retained factual claims.
  8. Define automatic expiration and provide mechanisms to inspect, correct, and delete stored memory.
  9. Avoid phone-derived storage paths where possible. If conversation scoping is required, use a non-reversible internal identifier and enforce access isolation.
  10. Validate and constrain the destination path to prevent traversal or cross-user writes.
  11. Require future sessions to revalidate stored research before relying on it for decisions or factual answers.
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 (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger phrases are broad everyday terms like 'research', 'look up', and 'what do you know about', which can cause the skill to activate in many normal conversations unintentionally. In this skill, accidental activation is more concerning because it may lead to web access and persistent memory writes that the user did not expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The markdown guidance repeats ambiguous trigger patterns without defining clear activation boundaries, so implementers may invoke the skill on loosely related prompts. Because the skill includes external search and post-task persistence, ambiguity increases the chance of unintended data handling and user surprise.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is described as a research synthesizer, but it also instructs the agent to write post-delivery summaries into persistent per-contact memory files. That side effect exceeds the user-visible purpose, creates silent data retention, and can store sensitive research topics or personal details without explicit consent.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Persisting research output to per-contact memory is not necessary for answering the immediate request and introduces unnecessary retention of user-derived data. If the research topic involves health, legal, financial, business strategy, or other sensitive subjects, this can create privacy leakage and future misuse across conversations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description says it performs multi-source research synthesis, but it does not warn users that important topics may be written into persistent per-contact memory files. This omission undermines informed consent and can expose sensitive user interests or business context beyond the immediate session.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Writing conversation-derived research summaries into per-contact memory files can leak sensitive user information beyond the immediate task and create cross-session privacy risks. Even sanitized phone-based paths remain linkable identifiers, and saved summaries may later be surfaced to other workflows or users with file access.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The skill promises a concise under-400-word output, but separately adds a hidden post-response file-write action. This mismatch can mislead operators and users about the true behavior of the skill, reducing transparency and making covert side effects easier to miss in review.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.