Back to skill

Security audit

Mexico

Security checks for vulnerabilities and agentic risk

Overview

This Mexico travel skill is mostly a local guide, but it automatically stores and silently reuses potentially sensitive trip details in plaintext without clear consent or deletion controls.

Install only if you are comfortable with a local ~/mexico/memory.md file storing trip preferences across sessions. Avoid putting reservation codes, passport details, payment data, credentials, or sensitive health information in it, and review or delete the file when the trip is over. Ask the agent to use a session-only plan if you do not want saved memory.

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
setup.md:24
Finding
Plaintext Persistence of Sensitive Travel and Booking Data## Vulnerability Details **File Location**: `setup.md:24-33`; related schema in `memory-template.md:7-20,54-57` **Vulnerability Type**: Plaintext sensitive-data storage and excessive data retention **Risk Level**: Medium ### Vulnerable Code Snippets `setup.md:24-33`: ```markdown ### 4. Save to Memory Update `~/mexico/memory.md` with their answers. ## Returning Users If `~/mexico/memory.md` exists: 1. Read it silently 2. Reuse known preferences 3. Ask what changed since last plan 4. Update memory with new priorities and constraints ``` Related fields in `memory-template.md:7-20`: ```markdown ## Trip Details - **Dates:** - **Duration:** - **Regions:** [Mexico City / Oaxaca / Guadalajara-Jalisco / Yucatan-Riviera Maya / Baja / Central Highlands] - **Cities/Bases:** - **Travelers:** [solo / couple / family / group] - **Kids:** [yes (ages) / no] ## Preferences - **Travel style:** [foodie / culture / beach / road-trip / family / nightlife / mixed] - **Budget:** [budget / mid-range / luxury] - **Dietary:** [none / vegetarian / vegan / gluten-free / other] - **Mobility:** [full / limited / wheelchair] - **Transport:** [public transit / rental car / private transfers / mixed] ``` Related booking fields in `memory-template.md:54-57`: ```markdown ## Bookings Made | What | Where | Date | Confirmation | |------|-------|------|--------------| | | | | | ``` ### Technical Analysis The Skill directs the Agent to persist trip details in `~/mexico/memory.md` and silently reuse that file in later sessions. The schema can contain exact travel dates and destinations, family composition and children's ages, dietary or mobility information, budget profile, and booking confirmation values. These records are stored as plaintext. The reviewed instructions do not require explicit user consent before persistence, data minimization, redaction of booking references, owner-only file permissions, encr ...[truncated 1869 chars]
Remediation
## Remediation Suggestions 1. Remove the `Confirmation` column and explicitly prohibit storing reservation codes, ticket numbers, passport data, payment information, account credentials, or identity-document details. 2. Request explicit user consent before creating or updating persistent memory, and offer a session-only mode. 3. Store only the minimum planning information required. Prefer approximate travel periods and broad regions over exact dates and detailed routes where possible. 4. Avoid retaining children's exact ages and detailed health-related information unless necessary and expressly approved. 5. Create the directory and file with owner-only permissions where supported, such as directory mode `0700` and file mode `0600`. 6. Define a retention policy that deletes or anonymizes completed-trip records after a short user-selectable period. 7. Provide commands or Skill actions that let users inspect, edit, export, and permanently delete stored memory. 8. Before each write, clearly disclose which fields will be persisted and exclude free-form content that may contain unexpected sensitive information. 9. If high-sensitivity data must be retained, use an operating-system credential store or appropriately encrypted storage rather than a plaintext Markdown file.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Confidence
89% confidence
Finding
The 'When to Use' section says the skill applies when a user is 'planning a trip to Mexico or asking for local insights,' which is a wide natural-language condition without specific trigger phrases, exclusions, or negative examples. This ambiguity could cause the skill to activate for casual or incidental mentions of Mexico-related topics beyond intended trip-planning use.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The first-time setup trigger is broad enough that a casual mention of Mexico travel could cause the agent to begin filesystem actions and data collection without clear user intent to enable persistent memory. In a travel-planning skill this is not inherently malicious, but it creates a consent and scope problem because persistence may occur when the user only wanted a one-off answer.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
These instructions tell the agent to create and update a persistent file containing user travel preferences, constraints, and potentially sensitive details without any visible disclosure or consent flow. Even though the content is travel-related, stored mobility, dietary, budget, and itinerary data can reveal personal habits and create privacy risk if persisted silently.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
Reading stored trip memory silently on future interactions bypasses user awareness and can expose previously saved personal preferences or constraints in ways the user did not expect in the current session. The danger is amplified by the instruction to do this automatically whenever the file exists, with no prompt, notice, or per-session consent.

Static analysis

No suspicious patterns detected.