Back to skill

Security audit

web-claude

Security checks for vulnerabilities and agentic risk

Overview

This web search skill is mostly coherent, but it automatically sends fallback searches through a logged-in Claude browser session and persistently stores all search queries and results without clear consent or retention controls.

Install only if you are comfortable with search queries being sent to Brave, DuckDuckGo, and potentially a logged-in claude.ai browser session, and with search history/results being saved under memory/research/. Avoid using it for confidential, regulated, personal, or secret-bearing queries unless you can disable or manually manage the cache and fallback behavior.

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

other

Warning
Location
SKILL.md:75
Finding

Unconditional Persistent Storage of Search Queries and Results

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 75-89
Vulnerability Type: Excessive Data Retention
Risk Level: Medium

Vulnerable Code

markdown
## Search Results Auto-cache

All search results automatically saved to `memory/research/` folder:

**Filename Convention:**

memory/research/search-YYYY-MM-DD-HH-MM-[keyword].md

text

**Saved Content:**
- Search query
- Timestamp
- Search method used (Brave/DuckDuckGo/claude.ai)
- Search results (links + summaries)
- Extracted insights

Technical Analysis

The skill requires all searches to be automatically persisted in the memory/research/ directory. Stored data includes the original query, timestamps, external results, summaries, and extracted insights. Search functionality does not inherently require persistent storage, making this retention broader than necessary for the skill's primary purpose.

The documented behavior provides no consent mechanism, sensitivity screening, secret redaction, access-control requirements, retention period, or deletion procedure. Queries may contain confidential business topics, personal information, credentials accidentally supplied by a user, or other sensitive material. Search results may also contain untrusted external content, which is copied into a persistent agent-accessible location.

This is not confirmed agent memory poisoning because the documentation does not instruct the agent to treat cached content as future rules or executable instructions. The issue is instead uncontrolled retention and potential disclosure of sensitive data.

Attack Path

  1. A user submits a sensitive search query containing confidential terms, personal information, or an inadvertently included secret.
  2. The skill transmits the query to Brave, DuckDuckGo, or claude.ai as part of its declared search operation.
  3. Regardless of whether persistence is necessary, the skill automatically writes the query, time ...[truncated 951 chars]
Remediation
View remediation

Remediation Suggestions

  1. Make caching opt-in rather than automatic, and clearly request user approval before writing search data to disk.
  2. Default to returning results only in the current session when persistence is not explicitly required.
  3. Detect and redact credentials, tokens, personal information, and other sensitive values before storage.
  4. Allow users to select which fields are retained; avoid storing the complete query when a sanitized identifier is sufficient.
  5. Store cached research outside directories used as agent memory or instruction sources to reduce the chance that untrusted web content influences future sessions.
  6. Apply restrictive filesystem permissions so cached data is accessible only to the intended account.
  7. Define a short retention period and implement automatic expiration and secure deletion.
  8. Provide commands to inspect and delete cached records.
  9. Record the cache operation and destination in the response so users know that persistence occurred.
  10. Treat cached web content as untrusted data and ensure it is never interpreted as agent instructions or executable code.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The browser fallback sends the user's query to claude.ai, a third-party service, as part of the automated workflow. Because the skill describes this as an automatic fallback and does not provide an explicit privacy warning or consent checkpoint, sensitive user queries could be transmitted externally without the user realizing it.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly states that all search queries, results, summaries, and extracted insights are automatically written to disk under memory/research/. This creates a privacy and data-retention risk because user-provided queries may contain sensitive business, personal, or investigative information, and the skill provides no warning, consent step, or retention controls before persisting that data.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill's auto-cache behavior stores raw user queries together with derived results and insights, with no indication of sensitivity filtering, classification, or exclusion rules. In practice, this can persist confidential prompts, internal research topics, credentials accidentally pasted into queries, or sensitive investigative context into local memory where other tools, users, or future workflows may access it.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.