Back to skill

Security audit

ppt

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Chinese HTML slide generator, with a disclosed but notable reliance on third-party CDNs in generated presentations.

Install only if you are comfortable with a Chinese-first slide-generation workflow and HTML outputs that contact third-party CDNs when opened. For sensitive presentations or offline use, prefer inlining CSS and using local/system fonts before sharing the generated HTML.

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

Warning
Location
assets/template.html:8
Finding

Unverified Third-Party JavaScript Executes in Generated Presentations

Content
View full analysis
``` ### Technical Analysis The presentation template loads and executes JavaScript directly from an external CDN. The script reference has no Subresource Integrity (`integrity`) attribute, and the document does not define a restrictive Content Security Policy. Consequently, the effective executable payload is determined by the CDN response at presentation-viewing time and can change after the Skill package has been reviewed. The external font stylesheets are not executable dependencies by themselves, but they create additional third-party network requests that disclose viewer metadata such as IP address, request headers, and access time. The project documentation explicitly encourages CDN-based resources in `SKILL.md:72-74` and `references/design-spec.md:36-46`, so generated presentations are likely to retain this exposure. ### Attack Path 1. The Skill generates an HTML presentation based on `assets/template.html`. 2. A user opens the generated presentation while network access is available. 3. The browser requests `tailwind.min.js` from the external CDN. 4. An attacker who compromises the CDN resource, CDN publishing account, delivery infrastructure, or another component capable of altering the response substitutes malicious JavaScript. 5. Because no SRI hash validates the response and no restrictive CSP blocks it, the browser executes the substituted code. 6. The malicious scr ...[truncated 839 chars]
Remediation
View remediation
` policy. Limit `script-src`, `style-src`, `font-src`, `connect-src`, `img-src`, and `frame-src` to the minimum required sources. 6. Avoid allowing generated user content to create arbitrary script elements, event-handler attributes, or untrusted URLs. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (10)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 35)May include surrounding context.

md
使用 [assets/template.html](assets/template.html) 作为基础模板生成完整HTML。

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger description is broad enough to activate on many ordinary requests about PPTs, slides, or presentation style, which can cause the skill to run outside the user's intended scope. Over-broad triggering increases the chance of incorrect tool/skill routing and can force unsolicited transformation of user content into this skill's prescribed format.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill prescribes Chinese-language output and style conventions without checking the user's preferred language, which can override user intent and produce unexpected or unusable output. While not a direct code-execution issue, it is a specification-level safety and reliability problem because it can mis-handle requests and degrade trust in the agent's behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The default prompt '请根据我的讲稿生成科技风PPT' is broad and closely matches common user requests for slide generation, which can cause the skill to activate in situations the user did not explicitly intend. Over-broad activation increases the chance of incorrect routing, unexpected behavior, and bypass of user preference constraints such as language, format, or style.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document declares lang="zh-CN", which forces a specific language/locale in the rendered skill asset. Under the policy, locale constraints should either be optional for the user or clearly justified as region-specific; this file provides neither.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The template claims to produce a single directly runnable HTML file, but it depends on remote Tailwind and font CDNs. This creates a supply-chain and reliability risk: the generated presentation can fail offline, leak viewer IP/user-agent metadata to third parties, or load modified upstream resources outside the author's control.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill metadata and default prompt are written only in Chinese and imply Chinese-language interaction without explicit user opt-in. This can override or conflict with the user's requested language, causing misleading output, degraded usability, or accidental disclosure/misinterpretation in multilingual contexts.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

A PPT/slide generator does not inherently need third-party runtime fetches, so loading external CSS and fonts expands the attack surface unnecessarily. Even without active exploitation, it exposes users to tracking, dependency tampering, and broken rendering if the CDN is unavailable or blocked.

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 is written as a prescriptive design specification titled in Chinese and uses Chinese throughout, which effectively imposes a specific language/locale on users of the skill. The policy allows locale constraints only when they are clearly documented and justified or when users are offered a choice, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file contains user-facing guidance exclusively in Chinese, and it does not indicate that the language is optional or limited to a region-specific audience. Under the language/locale policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.