Back to skill

Security audit

Product Desc

Security checks for vulnerabilities and agentic risk

Overview

The skill includes useful product-description templates, but it also ships an unclear utility that can save user input locally without explaining that behavior.

Review this before installing. The product-description template script appears harmless, but the package also includes a generic local data utility that can retain product details or search terms in plaintext under the user's data directory. Avoid entering confidential product plans, credentials, customer data, or unpublished business information unless the publisher removes or clearly documents that storage behavior.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:6
Finding

Undisclosed Plaintext Persistence of User-Supplied Data

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` ```bash cmd_add() { echo "$(date +%Y-%m-%d) $*" >> "$DB"; echo " Added: $*" _log "add" "${1:-}" } ``` ```bash cmd_search() { grep -i "$1" "$DB" 2>/dev/null || echo " Not found: $1" _log "search" "${1:-}" } ``` ```bash cmd_export() { [ -f "$DB" ] && cat "$DB" || echo "No data" _log "export" "${1:-}" } ``` ### Technical Analysis The skill is documented as a product-description, SEO, comparison, and localization helper. However, `scripts/script.sh` implements an unrelated persistent data utility that creates a local data directory and records caller-supplied values in plaintext. The `add` command writes all supplied arguments to `data.log`. The `_log` function also appends command names and selected arguments to `history.log`. Search terms are therefore retained as well. This storage behavior is not disclosed in `SKILL.md`, and the implementation provides no retention limits, sensitive-data warning, access-control initialization, or secure deletion mechanism. The directory and files inherit permissions from the executing process's current `umask`. The script does not enforce a restrictive mode such as owner-only access. On systems with permissive defaults, shared accounts, backups, or other local readers, retained product information may become accessible beyond its intended audience. The `PRODUCT_DESC_DIR` environment variable permits storage to be redirected ...[truncated 1946 chars]
Remediation
View remediation
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 (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description says this skill generates product descriptions and related marketing/SEO content. The supplied code instead implements a general-purpose command-line data/log management tool. Its main functions are creating a data directory, writing entries to a local log database, listing/searching/exporting those entries, and recording command history. There is no logic for text generation, SEO optimization, bullet-point extraction, competitor comparison, or multilingual localization. The primary purpose is materially different from the declared purpose, so this is a clear mismatch.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The implementation materially diverges from the declared skill purpose: instead of generating product descriptions, it provides a generic local data-management CLI with commands to add, list, search, and export stored content. This kind of capability mismatch is dangerous because it can hide unauthorized data collection or persistence behavior behind an innocuous skill description, defeating user trust and review expectations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill says to 'Use when writing product descriptions' and emphasizes that anyone can use it quickly, but it does not define clear trigger boundaries, input constraints, or exclusions. Overly broad invocation guidance can cause an agent to activate the skill in loosely related contexts, increasing the chance of unnecessary data exposure to the skill or inappropriate autonomous use.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script's generated guidance and prompts are written in Chinese, and the skill does not state that users may choose another language. This creates a natural-language locale policy concern because the skill effectively defaults to a specific language without opt-in.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The header and help text explicitly present the tool as a 'Multi-purpose utility tool', contradicting the documented skill purpose of product-description generation. Such inconsistent self-description increases the risk that reviewers or users misunderstand what the skill actually does, and in the context of agent skills this ambiguity can conceal broader-than-expected functionality.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The help output presents localization as a general capability, but the example explicitly uses "英语" and the rest of the script is Chinese-centric. While not a hard technical restriction, the natural-language framing does not clearly offer a free user language choice and may imply a default locale bias.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents all usage guidance and best practices in Chinese, which effectively forces a specific language for users. The policy allows locale constraints only when users are given a choice or when the restriction is clearly documented and justified, neither of which appears here.

Content

No source excerpt is available for this finding.