Back to skill

Security audit

Travel Photography Storyteller

Security checks for vulnerabilities and agentic risk

Overview

This skill is a low-risk travel photography planning helper that provides local, descriptive JSON guidance without network access, persistence, credentials, or system changes.

Installers should understand that this is a descriptive planning skill, not a live travel or booking tool. It should be safe for ordinary use, but publishers could improve it by narrowing activation phrases and explicitly documenting language 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
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 192)May include surrounding context.

md
- `SKILL.md` - Complete documentation (this file)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest declares language: en, and the acceptance criteria explicitly state "English documentation primary," yet the file also includes a Chinese usage scenario. This creates a language policy inconsistency that suggests a default language is being imposed rather than offering a documented user language choice or opt-in.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger keywords are broad terms like 'photography', 'story', and 'memory if applicable', which can cause the skill to activate outside its intended domain. Overbroad invocation increases the chance of unintended routing, irrelevant prompting, or misuse of the skill in contexts where its guidance is not appropriate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The non-functional requirement "English documentation primary" is a natural-language locale constraint, but the file does not explain that users can choose another language or why English-only primacy is required. Under the stated policy, forcing a specific language without opt-in is a violation unless clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest sets the skill language to "en" with no indication that users can choose another language or that the skill is intentionally limited to an English-only, region-specific use case. This is a natural-language policy concern because it imposes a locale constraint without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The README presents one example scenario entirely in Chinese while the rest of the document is in English, but it does not explain language-selection behavior or indicate that multilingual output is optional. This can imply a locale-specific response mode without explicit user opt-in, which falls under the language/locale policy concern.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The example prompts rely on generic phrases like 'help me with' and 'provide framework', which weakens domain boundaries and may encourage accidental invocation by loosely related requests. While not a direct exploit primitive, this ambiguity can lead to misclassification and unintended execution of the skill's logic in broader conversations.

Content

No source excerpt is available for this finding.