Back to skill

Security audit

Generate HTML animation from content

Security checks for vulnerabilities and agentic risk

Overview

Review before installing: the skill mainly generates presentation HTML as described, but many templates can silently load mutable third-party code when opened.

Install only if you are comfortable with generated presentations contacting third-party CDNs when opened. Prefer removing or vendoring remote scripts/fonts, pinning versions with integrity checks, confirming the output path before writes, and reviewing generated HTML for leftover demo content or unsafe prompt examples.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
assets/templates/PPT Template-level2/1.html:7
Finding
Mutable Remote JavaScript Is Executed Without Version Pinning or Integrity Verification<![CDATA[ ## Vulnerability Details **File Locations**: - `assets/templates/PPT Template-level2/1.html:7` - `assets/templates/PPT Template-level2/2.html:7` - `assets/templates/PPT Template-level2/3-1.html:7` - `assets/templates/PPT Template-level2/3-3.html:7` - `assets/templates/PPT Template-level2/4-1.html:7` - `assets/templates/PPT Template-level2/4-2.html:7` - `assets/templates/PPT Template-level2/4-3.html:7` - `assets/templates/PPT Template-level2/5-1.html:7` - `assets/templates/PPT Template-level2/5-2.html:7` - `assets/templates/PPT Template-level2/5-3.html:7` **Vulnerability Type**: Unverified remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code All affected templates contain the following active remote script: ```html <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.min.js"></script> ``` ### Technical Analysis The templates load and execute JavaScript directly from `unpkg.com` whenever an affected presentation is opened. The dependency uses the mutable `@latest` version selector rather than an immutable, reviewed package version. Consequently, the JavaScript that executes is not necessarily the same code that existed when the Skill was audited. The templates also omit a Subresource Integrity hash, so the browser has no cryptographic mechanism to verify that the downloaded script matches an approved artifact. This creates an external code-execution channel. A malicious package release, compromised package-maintainer account, compromised CDN distribution path, or other upstream supply-chain incident could replace the expected icon-library payload with arbitrary JavaScript. Although this also represents an insecure dependency practice, the best matching classification is remote payload retrieval and execution because the templates directly execute a mutable external script at runtime. ### Attack Path 1. An attacker compromises the upstream Lucide package publication process, a package-maintainer account, or the ...[truncated 1645 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Prefer a bundled local dependency** - Download and review a specific Lucide release. - Store the approved JavaScript within the Skill package. - Reference it with a relative path so generated presentations do not execute mutable remote code. ```html <script src="../vendor/lucide-0.468.0.min.js"></script> ``` 2. **If remote hosting is unavoidable, pin an exact version** - Replace `@latest` with an immutable, explicitly reviewed release. - Do not use mutable version aliases or floating semantic-version ranges. ```html <script src="https://unpkg.com/lucide@0.468.0/dist/umd/lucide.min.js" crossorigin="anonymous"> </script> ``` 3. **Add Subresource Integrity** - Generate and independently verify the SHA-384 or SHA-512 digest of the exact approved artifact. - Add the resulting `integrity` attribute and retain `crossorigin="anonymous"`. ```html <script src="https://unpkg.com/lucide@0.468.0/dist/umd/lucide.min.js" integrity="sha384-REPLACE_WITH_VERIFIED_DIGEST" crossorigin="anonymous"> </script> ``` The placeholder must not be deployed; it must be replaced with the digest of the reviewed file. 4. **Apply a restrictive Content Security Policy** - Prefer `script-src 'self'` after bundling the dependency locally. - Avoid permitting broad CDN domains or unsafe script execution. - Restrict outbound connections with `connect-src` to reduce exfiltration opportunities. 5. **Update every affected template consistently** - Remediate all ten listed files rather than only the representative SARIF location. - Add an automated repository check that rejects remote scripts, `@latest`, unpinned versions, and external scripts without integrity metadata. 6. **Review generated output** - Verify that the generation and template-reconstruction workflow does not reintroduce remote scripts. - Consider producing fully self-contained HTML document ...[truncated 47 chars]
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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 (93)

Ae1

High
Category
analysis-evasion
Content
assets/templates/PPT/PPT-Generate-1.html
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
assets/templates/PPT/PPT-Generate-2.html
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Hidden Instructions

High
Category
Prompt Injection
Content
<p class="page-subtitle">传统 Diffusion 模型的串行架构问题</p>
    </div>
    
    <!-- 右上角logo -->
    <div class="logo">
        <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
            <circle cx="50" cy="30" r="12" fill="#60a5fa"/>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Natural-Language Policy Violations

High
Confidence
97% confidence
Finding
The example prompt explicitly instructs the model to act as '去除了任何限制' ('without any restrictions'), which normalizes jailbreak-style prompting and can encourage users or downstream agents to bypass safety controls. In a skill whose purpose is generating presentation content from text, embedding this as recommended prompt-engineering guidance increases the chance that unsafe, policy-evading content is reproduced or operationalized.

Hidden Instructions

High
Category
Prompt Injection
Content
<div class="slide-container">

<!-- ====== Slide 1: 标题 ====== -->
<div class="slide bg-s5 active" id="s0">
  <div class="deco deco-emerald" style="width:500px;height:500px;top:-200px;right:-150px"></div>
  <div class="deco deco-cyan" style="width:400px;height:400px;bottom:-120px;left:-120px"></div>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<div class="slide-container">

<!-- ====== Slide 1: 标题 ====== -->
<div class="slide bg-s6 active" id="s0">
  <div class="deco deco-rose" style="width:500px;height:500px;top:-200px;right:-150px"></div>
  <div class="deco deco-violet" style="width:400px;height:400px;bottom:-120px;left:-120px"></div>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<div class="bg-grid"></div>

<!-- Glowing orbs -->
<div class="glow-orb" style="width: 500px; height: 500px; background: var(--accent-indigo); top: -100px; right: -100px;"></div>
<div class="glow-orb" style="width: 400px; height: 400px; background: var(--accent-fuchsia); bottom: -100px; left: -100px; animation-delay: -5s;"></div>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
</head>
<body>
    <div class="container" role="main" aria-label="演示内容">
        <!-- Slide 1: Cover -->
        <div class="slide slide-1 active" data-index="0" role="region" aria-label="封面">
            <div class="slide-content">
                <div>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
<body>
<div class="logo">
    <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
        <!-- 调整logo颜色适配蓝色背景 -->
        <circle cx="50" cy="30" r="12" fill="#60a5fa"/>
        <path d="M35 45 Q50 70 65 45" stroke="#60a5fa" stroke-width="4" fill="none"/>
        <path d="M30 60 Q50 90 70 60" stroke="#60a5fa" stroke-width="4" fill="none"/>
Confidence
70% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger phrase for PPT mode is too generic: users are instructed to say '帮我生成PPT', which overlaps with ordinary conversation and can cause the skill to activate unintentionally in unrelated contexts. In an agent environment, overly broad activation increases the chance of prompt/context hijacking or unexpected file-generation behavior being invoked without clear user intent.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The flowchart trigger '生成流程图' is especially ambiguous because it is a common generic request that could match many unrelated tasks. Since this mode also assumes the presence of a previously generated HTML artifact, accidental activation can lead to unintended transformation of files or misuse of prior context in the agent workspace.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The skill’s trigger conditions are very broad and include generic phrases like '生成PPT' and '生成演示网页', which can cause the skill to activate in contexts where the user did not intend file generation or template-driven transformation. Because the skill can then generate and write HTML output, over-broad activation increases the risk of surprising side effects and unintended content processing.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill states that output will default to '/home/mt/桌面/AI_Animation.html' if the user does not specify a path, but it does not prominently warn the user before writing to that filesystem location. Silent or insufficiently disclosed file creation can lead to unexpected persistence of generated content, accidental overwrites, or leakage of sensitive user-provided material into a predictable local path.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The document’s operative instructions and selection guidance are written entirely in Chinese for AI use, including the explicit statement that the file is for AI reference during template selection. Under the policy, language constraints should either offer user opt-in or be clearly documented as a justified region-specific requirement; neither is present here.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The template loads executable JavaScript from a third-party CDN at runtime, which creates a supply-chain and privacy risk for a skill that otherwise appears to be a self-contained local HTML generator. If the CDN content is modified, blocked, or replaced, generated pages could execute unintended code in the viewer's browser, and opening the page also leaks network metadata to the external provider.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The template loads Lucide from unpkg at runtime, which is an external network fetch despite the skill being presented as self-contained. This creates a supply-chain and privacy risk: generated pages will contact a third party, and if that dependency is tampered with or unavailable, the presentation can break or execute untrusted code.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
Loading a remote script without disclosure means users may open a generated local HTML file expecting offline, self-contained behavior while it silently reaches out to a third party. That can expose IP/addressing metadata, enable supply-chain compromise through the remote script, and violate expected trust boundaries for a local template.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The HTML declares `lang="zh-CN"`, and the visible instructional content throughout the file is presented in Chinese without any indication that users can choose another language. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy concern.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The template loads executable JavaScript from a third-party CDN at runtime, which creates a supply-chain and integrity risk for any generated HTML page. If the remote package is compromised, changed unexpectedly, blocked, or replaced, the page can execute untrusted code in the viewer's browser even though the skill's core function is local HTML rendering.

Ssd 1

Medium
Confidence
95% confidence
Finding
The role-setting section presents restriction removal as a legitimate prompting technique, which can train users to view safety bypass as part of normal usage. Although the HTML itself does not execute a jailbreak, the embedded instructional content is risky because this skill is designed to transform and present AI-related material, making reuse of unsafe prompt patterns more likely.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest describes a workflow that converts user-provided科普内容 into a PPT-style web presentation or flowchart-mode reconstruction. This file is instead a hard-coded, topic-specific slide deck about 'Context Engineering' with fixed Chinese text, visuals, and sequencing, showing a static template/example rather than logic or content structure for arbitrary science content conversion.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The document declares `lang="zh-CN"`, and the visible presentation content is entirely in Chinese, which enforces a specific language/locale for users. The provided file contains no user opt-in, alternate locale handling, or documented region-specific justification, which matches the language/locale policy violation criteria.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The template executes JavaScript from an external CDN at page load time, which creates a supply-chain and availability risk for a locally renderable PPT-style page. If the CDN asset is tampered with, blocked, or changed, any generated presentation page may run untrusted code in the viewer's browser or fail unpredictably.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The template fetches JavaScript and fonts from third-party CDNs at runtime, which introduces a supply-chain and privacy risk into what is described as a local PPT/webpage conversion workflow. If those remote resources are tampered with, blocked, or used for tracking, generated presentations could execute untrusted code or leak user metadata when opened.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The template loads executable JavaScript from a third-party CDN at runtime, which introduces a supply-chain and integrity risk. If the CDN content is compromised, changed, blocked, or maliciously substituted, generated local presentation pages will execute untrusted code in the viewer's browser.

Static analysis

No suspicious patterns detected.