Back to skill

Security audit

Fish

Security checks for vulnerabilities and agentic risk

Overview

Fish appears to be a local command logger with vague utility framing and misleading command behavior, so users should review its data retention before installing.

Install only if you intentionally want a local history/logging tool and are comfortable with command inputs being stored under ~/.local/share/fish. Avoid entering secrets, tokens, private notes, or sensitive filenames, and manually inspect or delete that directory if you need to clear retained data.

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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill is presented as a vague utility tool, but the documentation also describes persistent storage of command inputs, activity logging, searching historical entries, and exporting accumulated data. That mismatch is dangerous because users may invoke it without understanding that their inputs and usage history are being retained locally, which can capture sensitive prompts, filenames, or operational data.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description 'Use when you need fish' is so broad that it provides no meaningful trigger boundaries for when the skill should activate. In an agent environment, ambiguous invocation scope can cause inappropriate selection of this skill, increasing the chance that user inputs get logged or processed by a tool they did not intend to use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Generic command labels like 'Run', 'Check', 'Convert', and 'Analyze' do not define what data they operate on, what actions they take, or what side effects occur. This ambiguity makes the skill harder to reason about safely and may lead to overbroad use in contexts involving sensitive local data, especially given the documented history logging.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script is presented as a generic utility tool, but its actual behavior is to persistently collect and store user-provided inputs across many commands under ~/.local/share/fish. This mismatch can mislead users into disclosing sensitive data they would not expect to be retained, increasing privacy and data-handling risk.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The tool is designed to retain all natural-language inputs and then expose them via bulk export, search, and recent-history views, creating a broad local data-retention surface. In a skill context where users may enter arbitrary task content, this materially increases the chance of sensitive information being accumulated and later exposed to other local users, backups, or accidental sharing.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The help text advertises export and status functionality, but the earlier case branches for export and status only log user input instead of calling the real _export or _status functions. This deceptive command behavior can cause users to enter sensitive operational data under the assumption that a harmless status/export operation is occurring, when the data is actually being stored.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The command handlers write raw user-supplied input to persistent log files without any explicit notice, consent, or data classification safeguards. Users may provide secrets, tokens, internal notes, or personal data that then remain on disk and become accessible through search, recent, and export features.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The SKILL.md states 'Works entirely offline — your data never leaves your machine' at L017, but the same document prominently directs users to a web feedback endpoint and external homepage/source URLs elsewhere. This is a documentation-level contradiction about the skill's offline framing, even though the file shown does not include executable code making network requests.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.