Back to skill

Security audit

Spell

Security checks for vulnerabilities and agentic risk

Overview

Spell is a local-only logging utility with some misleading command labels and routing bugs, but its persistence is disclosed and there is no evidence of exfiltration, privilege escalation, or hidden execution.

Install only if you want a local command-line activity logger. Treat anything passed to spell as saved on disk under ~/.local/share/spell, avoid secrets or private data, and be aware that several utility-sounding commands mostly create log entries rather than performing the named operation.

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
98% confidence
Finding

The skill’s metadata and help text present Spell as a multifunction utility for lookups, checking, converting, analyzing, and generating results, but the described behavior indicates many of these commands merely log user input. This is dangerous because users may disclose sensitive data under the assumption that the tool is performing transient processing, while it is actually persisting activity and command content locally.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The case statement defines generic logging branches for export and status before later dedicated handlers, making the real _export and _status arms unreachable. This causes users to believe they are invoking safe utility features when the script instead records arbitrary input, increasing the chance that sensitive data intended for export parameters or health checks is silently retained.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description uses broad phrases like 'Log anything fast and find it later' and suggests use for many common tasks, which can cause the skill to be invoked in overly broad contexts. That increases the chance users will send unrelated or sensitive content to a tool that automatically stores inputs, expanding privacy and data-retention risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The marketing text uses ambiguous trigger phrasing such as 'Use when running lookups, checking entries, converting formats, generating summaries' without defining boundaries. In context, this makes accidental invocation more likely for routine tasks, causing unnecessary logging of user requests and potentially sensitive material.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill advertises convenience features but does not prominently warn, up front, that activity and command data are automatically logged and stored locally. Because the skill is positioned for broad utility tasks, users may unknowingly provide sensitive information that is retained on disk, creating privacy, forensic, and multi-user system exposure risks.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The help/manifest advertises operational commands like run, check, convert, analyze, generate, compare, export, and status, but the implementation mostly just stores arbitrary user input in per-command log files. This is dangerous because users may supply sensitive prompts, filenames, tokens, or investigation data believing the tool is performing a transient action, when it is actually persisting that data to disk under the home directory.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The export function aggregates previously logged activity into new json/csv/txt files, creating additional copies of potentially sensitive history on disk without clear user warning. This expands the exposure surface because data that users may not realize was stored is now duplicated into easy-to-share export artifacts that may have weaker handling controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

These command branches append all provided input directly into persistent log files in ~/.local/share/spell and also mirror the data into history.log, without any warning or consent. In a skill context, users may pass lookup terms, investigative notes, credentials, file paths, or other sensitive material, so silent retention creates a privacy and data exposure risk on shared or compromised systems.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.