Back to skill

Security audit

Post Creator

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent HTML poster generator, with disclosed but real browser-side dependency and file-output risks users should understand.

Install only if you are comfortable generating and opening local HTML files that include browser JavaScript and third-party font/script loads. Use non-sensitive poster content, review generated HTML before opening when possible, and choose a safe filename/location so existing files are not overwritten.

Vulnerability Patterns
  • 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
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:140
Finding

Unverified Third-Party JavaScript Is Mandated for Generated Posters

Content
View full analysis
``` ``` `examples/tech-summit-poster.html:7-8`: ```html ``` ### Technical Analysis The skill explicitly requires every generated poster to load and execute `html2canvas` from a third-party CDN. The URL pins version `1.4.1` and uses HTTPS, but the script element does not contain a Subresource Integrity (`integrity`) value or a corresponding `crossorigin` policy. Consequently, the browser trusts and executes whatever JavaScript is returned by the remote endpoint at page-load time. This creates a remote-code supply-chain boundary that is not represented by the reviewed package contents. If the CDN, its publishing account, or the hosted asset were compromised, the effective JavaScript payload could change after this skill had been audited. The example poster reproduces the mandated unsafe pattern. The external Google Fonts stylesheet also causes a third-party network request, but the confirmed executable-code risk is specifically the unverified `html2canvas` script. ### Attack Path 1. A user invokes the skill to generate an HTML poster. 2. Following the mandatory instructions in `SKILL.md`, the generated document includes the remote `html2canvas` script. 3. The user opens the generated HTML document in a browser. 4. The browser requests the JavaScript from `cdnjs.cloudflare.com`. 5. An attacker who has ...[truncated 1197 chars]
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (17)

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 · SKILL.md (reported line 122)May include surrounding context.

Create a complete HTML file with:

html
<!DOCTYPE html>
<html lang="zh-CN"> <!-- or "en" for English -->
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

Scope Creep

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documented workflow explicitly includes writing HTML to disk despite only declaring browser permission. Permission mismatches are dangerous because they normalize behavior outside the declared security boundary and can enable unauthorized persistence or overwriting of local files in environments that honor the instructions literally.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly instructs users to save AI-generated output as an .html file and open it in a browser, but it does not warn that HTML can contain active content such as JavaScript, external resource loads, form submission, or data exfiltration logic. In the context of a skill that generates full standalone HTML, this increases the chance that unsafe or prompt-injected content will be rendered and executed locally by the user.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description says to use the skill when users want to create posters, flyers, promotional images, marketing materials, or visual designs, which sweeps in very broad everyday design requests. It does not provide clear trigger boundaries or exclusion conditions, so the skill could be invoked for generic visual-design conversations that may not actually require single-page HTML poster generation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instruction 'When the user requests a poster, flyer, promotional image, or visual design' is broad enough to match many ordinary requests, especially 'visual design.' Because no limiting context or negative examples are given, the activation scope is unclear and may cause unintended invocations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill requires loading html2canvas from a third-party CDN but does not warn about external network access or dependency trust. This introduces supply-chain and privacy risk because generated posters are rendered in a page that depends on externally hosted JavaScript.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to save generated HTML into the user's working directory even though the skill only declares browser permission and is framed as an in-browser poster generator. This creates a capability/behavior mismatch that can lead to unexpected local file writes without clear user awareness or consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown tells the assistant to save an HTML file locally without warning that this modifies user files. Undisclosed file writes undermine user consent and can surprise users or overwrite content, especially in agent environments where instructions may be executed automatically.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The fixed instruction to tell the user '海报已生成!用浏览器打开后点击底部按钮即可导出图片。' forces a Chinese response regardless of the user's language preference. This is a natural-language locale policy issue because the skill otherwise claims to support both Chinese and English but does not make the response language user-selectable here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document sets the page language to zh-CN, and the visible content is written in Chinese, which indicates a fixed locale experience. Under the stated policy, forcing a specific language without user opt-in or a documented region-specific justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest lists only a generic browser permission for a poster-generation skill, but this reference file embeds remote font resources from fonts.googleapis.com. That introduces external network access beyond purely local single-page HTML generation and is not declared as a separate permission in the provided manifest context.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This example includes a stylesheet link to fonts.googleapis.com, which causes external resource retrieval. Given the manifest only declares browser permission, this is scope creep relative to a poster creator that could otherwise emit standalone HTML/CSS without third-party fetches.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The code references a remote font provider, which expands the skill's operational scope from generating HTML posters to causing third-party network requests at render time. That extra capability is not reflected in the manifest permissions provided.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

By linking to fonts.googleapis.com, the generated/reference poster is not fully self-contained and relies on third-party network access. The manifest only declares browser permission, so this behavior exceeds the stated permission baseline.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This template triggers a request to an external font service when rendered, which is additional capability beyond simple browser-based poster generation. The manifest does not disclose external resource access beyond the generic browser permission.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This HTML/JavaScript file includes an export button that generates and downloads a JPEG file to the user's system. While the action is initiated by a click, there is no visible warning, explanatory text, or comment/docstring disclosing that clicking the button will create and download a local file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This markdown file includes multiple HTML examples that explicitly set lang="zh-CN" and use Chinese-only poster text, which can amount to forcing a specific language/locale in sample output. The file does not state that Chinese is optional, illustrative, or user-selectable, so it may conflict with a policy requiring language choice or opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.