Back to skill

Security audit

LaunchFast Full Research Loop

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Amazon FBA research workflow that calls declared LaunchFast tools and saves a report, with some practical safety cautions around local HTML output.

Reasonable to install if you trust the LaunchFast MCP tools and want this workflow. Before opening or sharing generated reports, ensure the agent escapes product titles, supplier names, keywords, and other returned text as plain text, and choose a non-sensitive output path that will not overwrite important files.

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
SKILL.md:127
Finding
Stored HTML Injection in Generated Research Report<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 127–521 **Vulnerability Type**: Unescaped insertion of untrusted data into HTML **Risk Level**: Medium ### Vulnerable Code ```html <h1>[Keyword] Opportunity Report</h1> ``` ```html <td>[Product title truncated to 60 chars]</td> ``` ```html <td>[Company Name]</td> ``` ```html <td>[keyword]</td> ``` The template is followed by this instruction: ```text Fill ALL placeholder values (`[...]`) with real data from the research phases. Save the complete file to the path from Step 1. ``` ### Technical Analysis The skill instructs the agent to insert user-provided values and data returned by external MCP research tools directly into a standalone HTML document. It does not require HTML escaping, sanitization, strict type validation, or safe DOM construction. Dynamic values include product keywords, product titles, supplier names, trademark records, campaign recommendations, and other externally sourced fields. If any value contains HTML markup or executable event handlers, direct placeholder replacement can transform that value into active document content. For example, an upstream field containing an image element with an error handler could execute JavaScript when the generated report is opened. Script tags are not the only relevant vector; event handlers, embedded frames, SVG content, form elements, and navigation markup may also produce active behavior. The template does not define a Content Security Policy to mitigate successful injection. This is a stored HTML injection issue because the attacker-controlled value is written into the generated report and activated later when a user opens that file. ### Attack Path 1. An attacker places crafted HTML in data that can be returned by a product, supplier, trademark, or keyword research source. Alternatively, a user supplies a malicious product keyword. 2. One of the declared LaunchFast MCP tools returns the crafted value as ordinary resea ...[truncated 1379 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require HTML-context escaping for every dynamic value before interpolation. At minimum, encode: - `&` as `&amp;` - `<` as `&lt;` - `>` as `&gt;` - `"` as `&quot;` - `'` as `&#39;` 2. Treat all user input and MCP-returned fields as untrusted, including product titles, supplier names, trademarks, keywords, recommendations, URLs, and free-form descriptions. 3. Apply strict type and allowlist validation: - Parse prices, review counts, scores, quantities, and percentages as bounded numbers. - Restrict grades, verdicts, risk levels, and badge class suffixes to fixed enumerations. - Reject control characters and unexpected markup in textual fields. - Validate ASINs against the expected format. 4. Do not insert untrusted values into raw HTML attributes, CSS declarations, URLs, or class names. Where this is necessary, use context-specific encoding and allowlists rather than generic HTML escaping alone. 5. Prefer generating the document through a template engine with automatic escaping enabled. Do not use an unescaped/raw-output operator for research data. 6. Add a restrictive Content Security Policy to the generated document, for example: ```html <meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src data:;"> ``` 7. Avoid links and other active content unless explicitly required. If links are included, allow only approved `https:` destinations and add `rel="noopener noreferrer"` when opening a new browsing context. 8. Add security tests using values that contain script tags, event-handler attributes, SVG payloads, quotes, angle brackets, and malicious URL schemes. Verify that each value appears only as inert text in the resulting report. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Hidden Instructions

High
Category
Prompt Injection
Content
<body>
<div class="page">

  <!-- HEADER -->
  <div class="report-header">
    <div class="brand">LaunchFast · FBA Research Report</div>
    <h1>[Keyword] Opportunity Report</h1>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill directs the agent to save a generated HTML file to a filesystem path, including a user-supplied path, without requiring an explicit confirmation step or warning about file creation and overwrite behavior. In an agent setting, this can lead to unintended writes, overwriting existing files, or writing to sensitive locations if the provided path is unsafe or ambiguous.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The report template specifies `<html lang="en">`, which forces an English locale in generated output. The skill does not offer the user a language choice or explain why English-only output is required, so this is a natural-language locale policy issue under the stated rule.

Static analysis

No suspicious patterns detected.