Back to skill

Security audit

Carpet Cleaning Floor Care Marketing Kit

Security checks for vulnerabilities and agentic risk

Overview

This prompt-only marketing kit does not run code, but users should review it because some ready-to-use SMS, email, and example copy conflicts with its claimed compliance safeguards.

Review and edit all generated outreach before use. Do not send SMS unless you have documented prior express written consent, add unsubscribe and physical-address footers to marketing emails, verify claims such as drying time, sanitizer efficacy, certifications, review counts, and insurance before publishing, and treat the included examples as drafts rather than compliance-approved copy.

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 (3)

T09 · Insecure Skill Coding Practices

Warning
Location
prompts/03-reputation-referral.md:27
Finding

Marketing SMS Generated Without Prior Consent Verification

Content
View full analysis

Vulnerability Details

File Location: prompts/03-reputation-referral.md, lines 27–31
Vulnerability Type: Missing authorization control for marketing SMS generation
Risk Level: Medium

Vulnerable Code Snippet:

text
**Text Message — Same Day (within 2 hours of job completion):**
[Business Name]: Hi [First Name], thanks for having us today! I hope the [service type] came out exactly how you wanted it. We'd love to know how we did — if you have 60 seconds, a Google review helps our small local business more than anything: [Google Review Link]

Reply STOP to opt out of texts.
(Max 160 characters per message segment; split if needed)

Technical Analysis

The prompt generates a non-transactional review-request SMS for customer phone numbers without requiring the operator to verify prior express consent. Providing a retrospective Reply STOP mechanism does not establish authorization to send the initial marketing message.

This contradicts the Skill's stated TCPA consent safeguards. The prompt should treat consent as a required input and conditionally suppress SMS output when consent has not been recorded. Because the generated material is intended for direct use in CRM campaigns, users may reasonably assume that following the template is sufficient.

Attack Path

  1. An operator imports customer telephone numbers collected during service bookings into a CRM.
  2. The operator runs the reputation-system prompt without supplying any marketing-consent records.
  3. The Skill generates the same-day review-request SMS.
  4. The operator sends the message to all completed-job contacts, including recipients who only provided their numbers for transactional scheduling.
  5. Customer telephone data is consequently used for a purpose to which the recipients may not have consented.

Impact Assessment

This issue does not grant system privileges or enable code execution. Its scope is the customer-contact dat ...[truncated 356 chars]

Remediation
View remediation

Remediation Suggestions

  1. Add a required input such as Marketing SMS Consent: Yes/No and, where relevant, the date, source, and disclosure version associated with consent.
  2. Instruct the model not to generate marketing SMS content unless the value is explicitly Yes.
  3. Generate an email-only alternative when consent is absent or unknown.
  4. Distinguish transactional appointment messages from marketing, review, referral, and promotional messages.
  5. Require the sending system to maintain consent evidence and a suppression list.
  6. Check the suppression list immediately before every campaign, rather than relying only on template text.
  7. Preserve STOP instructions as an additional opt-out control, not as a substitute for prior authorization.

T09 · Insecure Skill Coding Practices

Warning
Location
example-desert-fresh.md:20
Finding

Shipped Example Bypasses the Skill's Health and Performance Claim Safeguards

Content
View full analysis

Vulnerability Details

File Location: example-desert-fresh.md, lines 20–54
Vulnerability Type: Unsafe example configuration contradicting declared compliance gates
Risk Level: Medium

Vulnerable Code Snippet:

text
| Differentiator | Airbnb turnover specialist, certified pet odor elimination, same-day service by 2PM |

3. Dry in 4-6 Hours Guaranteed

**Opening:**
Henderson's desert climate is tough on carpet. Fine Mojave dust, tracked-in sand from the garage, and pet hair embed deep into carpet fibers that standard vacuuming can't reach. Desert Fresh Carpet Care uses IICRC-certified truck-mount hot water extraction — reaching 200-250°F at the nozzle to dissolve grime, bacteria, and allergen particles locked in your carpet pile. Our Butler System 570 leaves carpets dry in 4-6 hours, not 24. No musty smell. No wet carpet overnight. CTS-certified technicians, $2M commercial liability insurance, and 287 five-star reviews across Henderson, Green Valley, and the Las Vegas Valley. **Call before 10AM for same-day service.**

**Why Desert Fresh:**
- **CTS-Certified technicians** — IICRC Carpet Cleaning Technician certification, not a weekend side hustle
- **Truck-mount extraction** — 200-250°F water temperature and 200+ CFM suction vs. 150°F and 80 CFM from portable units
- **4-6 hour dry time** — documented Butler System 570 spec; carpets ready before bedtime

Technical Analysis

The reusable example contains an explicit drying-time guarantee, uses “certified pet odor elimination,” and makes unqualified bacteria and allergen assertions. These statements conflict with the safeguards declared elsewhere in the project, including the prohibitions against guaranteed drying times, unsupported elimination claims, and antimicrobial claims without an applicable EPA registration number.

Examples are part of the effective Skill guidance because users may copy them directly or provide them to a model as few-shot outp ...[truncated 1418 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace Dry in 4-6 Hours Guaranteed with a condition-qualified statement such as Most carpets typically dry in 4–6 hours under documented local conditions; results vary by fiber, underpad, humidity, and airflow.
  2. Replace certified pet odor elimination with evidence-limited wording such as pet odor treatment or pet odor reduction.
  3. Remove unqualified bacteria and allergen assertions unless supported by product-specific efficacy evidence and all required registration information.
  4. Add visible [VERIFY BEFORE PUBLISHING] markers to temperatures, ratings, review counts, insurance limits, credentials, and availability claims.
  5. Add an automated consistency checklist that scans all examples for phrases forbidden by SKILL.md.
  6. Treat examples as test fixtures and require them to pass the same claim-validation rules as generated output.
  7. Review all equipment specifications against current manufacturer documentation before retaining them in an example.

T09 · Insecure Skill Coding Practices

Note
Location
example-desert-fresh.md:157
Finding

Example Review Emails Omit Unsubscribe and Physical-Address Controls

Content
View full analysis

Vulnerability Details

File Location: example-desert-fresh.md, lines 157–191
Vulnerability Type: Missing opt-out and sender-identification controls in reusable marketing templates
Risk Level: Low

Vulnerable Code Snippet:

text
### Review Request Email 1 — Same Day

**Subject:** Your Desert Fresh service is complete — thank you

Hi [FIRST_NAME],

Just wanted to confirm we're all wrapped up at your home. Your carpets are going through the dry-down phase now — give them 4-6 hours before walking on them, and feel free to run the AC to speed things up.

If anything looks off once they're fully dry, please reach out directly — we'll make it right.

If you have a moment to share your experience online, it means the world to a small local business:
[GOOGLE_REVIEW_LINK]

Thanks for choosing Desert Fresh.
— Carlos, Desert Fresh Carpet Care

---

### Review Request Email 2 — Day 3

**Subject:** How are your carpets looking?

Hi [FIRST_NAME],

Just checking in — how are things looking after your clean? Nevada's low humidity usually means everything is fully dry within a few hours, but wanted to make sure you're happy with the results.

If you have a chance to leave us a Google review, it helps other Henderson families find us:
[GOOGLE_REVIEW_LINK]

You'd be surprised how much a few words from a real customer means to a small business. Takes about 60 seconds.

Thanks again.
— Carlos, Desert Fresh Carpet Care

Technical Analysis

Both reusable review-request emails omit a physical postal address and a functional unsubscribe mechanism. This contradicts the explicit controls defined in the primary Skill and Prompt 3, which require marketing-email footers to include both elements.

Since these emails request public reviews and promote the sender's business reputation, operators may process them as marketing communications. A ready-to-copy example lacking mandatory suppression controls can be ...[truncated 1140 chars]

Remediation
View remediation

Remediation Suggestions

  1. Add a footer to every example marketing email containing [Physical Postal Address] and [One-Click Unsubscribe Link].
  2. Require the CRM to maintain and enforce a global suppression list.
  3. Validate that unsubscribe links are functional before campaign activation.
  4. Ensure opt-out requests are honored across all campaign types rather than only the sequence in which the request was received.
  5. Add a template linter that rejects marketing-email output missing the sender address or unsubscribe placeholder.
  6. Update all examples and generated templates together so they cannot drift from the controls declared in SKILL.md.
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 (4)

Autonomous Decision Making

Medium
Category
Excessive Agency
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.

Content

Scanner excerpt · README.md (reported line 41)May include surrounding context.

md
## Why This Beats Generic AI

Generic AI will write "steam cleaning" (incorrect — it's hot water extraction), promise "dries in 2 hours" (FTC deceptive practice), claim "kills 99.9% of bacteria" without an EPA registration number (FIFRA violation), and call wool carpet "colorfast and durable" without checking the pH of your pre-spray.

This skill enforces IICRC S100, IICRC S303, WoolSafe chemistry standards, EPA/FIFRA antimicrobial claim rules, FTC Green Guides, FTC 2023 Endorsement Rule, TCPA written consent requirements, and CAN-SPAM — because a compliance mistake in carpet cleaning marketing costs more than the job.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

The prompt definitions prescribe generation of landing pages, social posts, emails, review requests, ads, and outreach letters, but nowhere in the skill is there an option to choose output language or locale. Because the skill is broadly marketed to service businesses and includes customer-facing content generation, this reads as an implicit English-only workflow without user opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The prompt operationalizes B2B cold outreach campaigns and includes discounts, complimentary services, and outreach cadences, but it does not require the generated output to include jurisdiction-specific compliance checks, consent prerequisites, suppression-list handling, or reputational-risk warnings beyond limited CAN-SPAM footer references. A user could deploy the produced letters for email, SMS-adjacent, or other unsolicited outreach in ways that violate anti-spam, privacy, or platform rules, creating legal and brand exposure.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This markdown prompt asks the model to "Generate a complete reputation and referral system" and then immediately lists many assets, but it does not define explicit trigger phrases, exclusions, or boundaries for when this prompt should be used versus other marketing prompts. In a skill-routing context, the description is broad enough to overlap with common requests about reviews, referrals, outreach, and re-engagement marketing.

Content

No source excerpt is available for this finding.