Back to skill

Security audit

Florida

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Florida advice helper, but its optional local memory instructions inconsistently allow highly sensitive information to be saved in a plain Markdown file.

Review the memory behavior before installing. It is reasonable for region preferences, timelines, insurance concerns, and open tasks, but do not let it save passwords, account numbers, SSNs, Medicare IDs, payment details, or full street addresses in ~/florida/memory.md.

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:61
Finding
Plaintext Persistent Storage of Highly Sensitive User Data## Vulnerability Details **File Location**: `setup.md`, lines 61–68; related instruction in `memory-template.md`, lines 50–53 **Vulnerability Type**: Plaintext sensitive-data storage caused by unsafe configuration guidance **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown Keep `~/florida/memory.md` lightweight and useful: - activation preference for Florida topics - current mode and target region - major deadlines, seasonal patterns, and open loops - persistent family, school, housing, insurance, and storm constraints - which official portals or local agencies already matter for this user Do not store credentials, account numbers, SSNs, Medicare IDs, full street addresses, or payment details unless the user explicitly asks for that behavior. ``` The related instruction in `memory-template.md` states: ```markdown - Save only details that will materially improve the next Florida answer. - Keep the default memory coarse. Do not store full street addresses or sensitive identifiers unless the user explicitly asks for saved continuity at that level. ``` ### Technical Analysis The Skill permits credentials, account numbers, Social Security numbers, Medicare identifiers, full street addresses, payment details, and other sensitive identifiers to be saved when the user explicitly requests persistence. The designated storage location is a Markdown file at `~/florida/memory.md`. The instructions provide no requirement for encryption at rest, restrictive file permissions, data-field allowlisting, redaction, retention limits, secure deletion, or protection from backups and synchronization services. Consent does not make plaintext secret storage safe; an agent should refuse to persist authentication secrets, payment information, and high-impact identity identifiers in an ordinary text file. This behavior also conflicts with `SKILL.md`, lines 124–126, which makes the unconditional claim that the Skill does not store credentials, SSNs, Medicare numbers, or ...[truncated 1801 chars]
Remediation
## Remediation Suggestions 1. Remove both “unless the user explicitly asks” exceptions. 2. Unconditionally prohibit persistent storage of: - Passwords, access tokens, API keys, recovery codes, and other credentials - SSNs and government-issued identity numbers - Medicare and other healthcare identifiers - Bank, card, and payment details - Full street addresses unless indispensable and protected by an approved secure store 3. Replace the denylist with a strict allowlist of coarse, low-sensitivity preferences, such as region, general timeline, and non-sensitive planning constraints. 4. Redact sensitive values before writing memory and instruct the agent to store references such as “document collected” rather than document contents. 5. If local persistence remains supported, require restrictive file permissions, atomic writes, retention limits, user-visible review, and a deletion workflow. 6. Do not place secrets in Markdown. Where sensitive persistence is genuinely required, use an operating-system credential manager or another approved encrypted secret store. 7. Make `setup.md`, `memory-template.md`, and the privacy claims in `SKILL.md` consistent. 8. Add tests or policy checks that reject attempted persistence of prohibited sensitive-data classes even when a user requests it.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (6)

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Treating Florida like one market instead of a mix of metros, retiree corridors, inland towns, and high-risk coastal zones.
- Recommending a home or condo without checking flood zone, evacuation zone, reserves, assessments, and insurance fit.
- Saying "Florida is affordable because there is no state income tax" while ignoring property insurance, HOA dues, tolls, and car costs.
- Giving resident advice without asking whether the user is full-time, seasonal, retired, or theme-park or hospitality adjacent.
- Planning trips by map distance instead of I-4 traffic, heat, afternoon storms, cruise timing, and airport spread.
- Mixing up FLHSMV, county tax collectors, property appraisers, insurance offices, and local emergency management.
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Guidance Rules

- Separate statewide law from county, city, campus, HOA, or beach-specific enforcement.
- Avoid false confidence on weapon, boating, cannabis, landlord-tenant, or short-term-rental questions without checking current official sources.
- For family and senior households, include fraud and contractor-scam awareness after storms.

## Florida-Specific Traps
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Guidance Rules

- Separate statewide law from county, city, campus, HOA, or beach-specific enforcement.
- Avoid false confidence on weapon, boating, cannabis, landlord-tenant, or short-term-rental questions without checking current official sources.
- For family and senior households, include fraud and contractor-scam awareness after storms.

## Florida-Specific Traps
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Guidance Rules

- Separate statewide law from county, city, campus, HOA, or beach-specific enforcement.
- Avoid false confidence on weapon, boating, cannabis, landlord-tenant, or short-term-rental questions without checking current official sources.
- For family and senior households, include fraud and contractor-scam awareness after storms.

## Florida-Specific Traps
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The invocation guidance says to use the skill whenever a user lives in Florida part of the year, owns a second place, or wants to become a snowbird, which is a broad natural-language condition rather than a specific trigger. It does not define exclusions or negative examples, so the skill could be invoked for casual mentions of second homes or seasonal travel that are not actually in scope.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The activation rule is intentionally broad: it says the skill should activate whenever the user mentions Florida at all. That can cause unnecessary invocation on incidental references, pulling the assistant into specialized behavior or memory-related flows outside the user's actual intent. In a skill that may ask about persistent memory and stores ongoing constraints, over-activation increases privacy and relevance risks even without obviously malicious intent.

Static analysis

No suspicious patterns detected.