Back to skill

Security audit

FlowVisualExplainer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent visual HTML generator, but it includes under-disclosed public sharing, third-party code loading, and external AI image-generation paths that could expose sensitive content.

Review carefully before installing. This skill is not just a local diagram helper: avoid using its share feature or slide image generation with confidential code, architecture, business plans, customer data, or incident material unless you intentionally approve the external services involved. Prefer disabling public deployment, remote image generation, and CDN-backed templates for sensitive work.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T03 · Remote Payload Retrieval and Execution

Warning
Location
references/libraries.md:11
Finding

Generated pages execute mutable third-party JavaScript from remote CDNs

Content
View full analysis
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true, /* ... */ }); ``` ```html ``` The templates directly implement the same imports: ```js import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs'; import elkLayouts from 'https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk/dist/mermaid-layout-elk.esm.min.mjs'; ``` ### Technical Analysis The generated HTML executes JavaScript modules obtained at page-load time from a third-party CDN. The Mermaid import is constrained only to the mutable major-version alias `@11`, while the ELK layout package has no version constraint at all. Neither resource is tied to an immutable artifact or verified using an integrity mechanism. Consequently, the effective executable payload can change after the Skill package has been reviewed. A compromised package publisher, package registry, CDN, or upstream release process could replace the delivered module with malicious JavaScript. Because these are ECMAScript module imports, the retrieved code executes automatically in the page's browser context. The pages may contain proprietary architecture diagrams, code-review content, project plans, operational data, or other sensitive ma ...[truncated 1434 chars]
Remediation
View remediation

other

Warning
Location
references/slide-patterns.md:1123
Finding

Slide generation mandates external AI processing without explicit user consent

Content
View full analysis
# Clean up rm /tmp/ve-slide-title.png ``` ``` ### Technical Analysis The instructions require the agent to check for `surf` during every slide-deck generation and state that gene ...[truncated 1917 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
SKILL.md:205
Finding

Documentation recommends an unpinned global package installation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (30)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a local HTML visualization tool, but it also includes a capability to publish generated content to a public Vercel URL. That is a material behavior expansion because user-provided or repository-derived content could be exposed externally without the skill metadata and top-level description making that risk explicit.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger conditions are broad enough to activate on many common requests, including ordinary explanations, reviews, comparisons, and tables. Over-broad auto-activation is dangerous here because the skill can write files, open a browser, and includes a sharing path, so users may trigger side effects they did not intend.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill documents deployment of generated HTML to a live URL without any explicit warning that the action publishes content to an external service. If the page contains internal architecture, code-derived analysis, roadmap details, or other sensitive material, a user could unintentionally make that information publicly accessible.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/css-patterns.md (reported line 1008)May include surrounding context.

html
<svg class="connectors" style="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;">
  <path d="M 150,100 C 150,200 350,100 350,200" fill="none" stroke="var(--accent)" stroke-width="1.5" stroke-dasharray="4 3"/>
  <!-- Arrowhead -->
  <polygon points="348,195 352,205 356,195" fill="var(--accent)"/>
</svg>

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/slide-patterns.md (reported line 40)May include surrounding context.

...
...
...
```

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/slide-patterns.md (reported line 538)May include surrounding context.

md
</ul>
    </div>
    <div class="slide__aside reveal">
      <!-- optional: illustration, icon, mini-diagram, accent SVG -->
    </div>
  </div>
</section>

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/slide-patterns.md (reported line 1146)May include surrounding context.

Clean up

rm /tmp/ve-slide-title.png

text

**Prompt craft for slides:** Be specific about style, dominant colors, and mood. Pull colors from the preset's CSS variables. Examples:

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

This script adds a public-sharing capability by deploying generated HTML to Vercel and returning a live URL, which materially exceeds a purely local rendering/output expectation. Because the skill description emphasizes local output to ~/clawd/output/diagrams/ and browser opening, users or calling agents may not realize content is being uploaded to a third-party public host, creating data exposure risk.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The code invokes an external deployment script and publishes the provided HTML directory to Vercel, which is a powerful exfiltration-capable behavior for a visualization skill. In context, visual explainers often process sensitive architecture, code, plans, or data, so silently adding Internet-hosting capability makes accidental disclosure significantly more dangerous.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · templates/architecture.html (reported line 7)May include surrounding context.

html
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Architecture Diagram — Reference Template</title>
<!--
  Reference template for the visual-explainer skill: CSS Grid architecture layout.
  Warm terracotta/sage palette — distinctly different from the teal (mermaid)
  and rose (data-table) templates so agents absorb variety, not a single palette.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · templates/mermaid-flowchart.html (reported line 7)May include surrounding context.

html
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CI/CD Pipeline — Reference Template</title>
<!--
  Reference template for the visual-explainer skill: Mermaid diagrams.
  Teal/cyan palette — distinctly different from terracotta (architecture)
  and rose (data-table) templates so agents absorb variety.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The module imports Mermaid and the ELK layout engine from jsDelivr at runtime, directly contradicting the skill's promise of self-contained output. Because executable code is fetched when the generated page opens, any CDN outage, tampering, or future upstream change affects rendered output and can expose users to third-party code execution in the browser context.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · templates/slide-deck.html (reported line 7)May include surrounding context.

html
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>API Gateway Redesign — Reference Slide Deck</title>
<!--
  Reference template for the visual-explainer skill: slide decks.
  Midnight Editorial preset — deep navy, serif display, warm gold accents.
  Distinctly different from the terracotta (architecture), teal (mermaid),

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · templates/slide-deck.html (reported line 711)May include surrounding context.

html
</div>
  </section>

  <!-- SLIDE 7: DASHBOARD -->
  <section class="slide slide--dashboard" style="background-image:radial-gradient(ellipse at 70% 30%, var(--accent-dim) 0%, transparent 40%);">
    <h2 class="slide__heading reveal">Performance Impact</h2>
    <div class="slide__kpis">

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · templates/slide-deck.html (reported line 785)May include surrounding context.

html
<cite class="reveal">&mdash; Edge Computing Principle</cite>
  </section>

  <!-- SLIDE 11: FULL-BLEED -->
  <section class="slide slide--bleed">
    <div class="slide__bg slide__bg--gradient"></div>
    <div class="slide__scrim"></div>

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest frames the skill as local HTML generation, but the documented commands also include deployment to a live Vercel URL. This mismatch can mislead operators and users about the trust boundary, increasing the chance that sensitive diagrams, plans, code summaries, or fact-check outputs are unintentionally published.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Automatically activating for '4+ rows or 3+ columns' is ambiguous and can capture many normal responses that users expected in-chat. In this skill, that ambiguity matters because activation causes file generation and browser opening, creating avoidable side effects and raising the chance of content being handled outside the chat interface.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The natural-language triggers include vague phrases such as 'share this', 'deploy this', and generic review/recap language that can collide with everyday conversation. Because the skill includes publishing and local execution side effects, loose trigger matching can cause unintended activation and, in the worst case, accidental exposure of generated content.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

A web deployment feature is not necessary for the core purpose of generating visual explanations, so it expands the skill's operational scope beyond what users would reasonably expect. Unnecessary publication capability increases the chance of data leakage from generated pages that may summarize internal code, architecture, or business plans.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest says the skill automatically switches to HTML for complex tables, but this document says slides should be used only when explicitly requested and 'Never auto-select slide format.' That is an active contradiction in documented intent about when slide output may be chosen.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The usage/comments and runtime flow do not provide a prominent warning that the supplied HTML file will be uploaded to a third-party service and exposed through a live unauthenticated URL. That omission can mislead users or upstream agents into treating this like a local file operation, increasing the chance of publishing confidential content.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The template claims to generate self-contained HTML, but it pulls Google Fonts and later imports runtime dependencies from public CDNs. This creates privacy, integrity, and availability risks: rendered pages leak viewer IP/user-agent to third parties, can break offline, and depend on externally hosted code that could change or be compromised.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The template is advertised as producing self-contained HTML, but it pulls fonts from Google Fonts and relies on external network access. This creates privacy leakage to third parties, breaks offline portability, and allows rendered output behavior to depend on external resources instead of the generated artifact alone.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

Importing Mermaid from a remote CDN means opening the generated file will execute third-party JavaScript in the user's browser. For a skill intended to generate local, self-contained HTML, this expands the trust boundary, enables supply-chain risk, and leaks user IP/referrer data whenever the deck is viewed.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest frames the skill as local HTML generation, but the documented commands also include deployment to a live Vercel URL. This mismatch can mislead operators and users about the trust boundary, increasing the chance that sensitive diagrams, plans, code summaries, or fact-check outputs are unintentionally published.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.