Back to skill

Security audit

slideshow

Security checks for vulnerabilities and agentic risk

Overview

The skill’s presentation-building behavior fits its purpose, with dependency and browser-storage caveats.

Use a reviewed, pinned HyperFrames dependency. For offline or sensitive presentations, bundle Three.js locally instead of using the optional CDN example. Speaker-note edits remain in browser storage; avoid retaining confidential notes on shared devices.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
## Present and hand off

- **Never render a deck to MP4**: `render` keeps only the first scene and truncates silently. For stills, `snapshot --at` each slide.
- Run `npx hyperframes check --json` until it is clean. The slideshow rule checks that every `sceneId` resolves, every hotspot `target` exists, fragments sit inside their slide, and main-line slides don't overlap.
- Serve it with `npx hyperframes present <project-dir>` and hand over the URL it prints: "Click Present, or press P, to open the audience tab."
- The project's root `index.html` should open as a working deck: `<hyperframes-slideshow>` around `<hyperframes-player src="…">`, with the raw composition in a subfolder if needed. The component owns Present (P), Prev/Next, the counter, global mute, fullscreen, swipe, hotspots, presenter notes (editable, kept per deck) and stopping media on slide exit. Don't build your own versions of any of these.
- Screen sharing: in Google Meet share the audience **tab**, which keeps renderin

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- A deck opened from the bare player bundle without `present` needs workarounds: `references/standalone-harness.md`.

MCP server referenced without pinned version: 'npx hyperframes'.

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The catalog command invokes an unpinned npm CLI through npx, which can download and execute a changing package version if no suitable local installation exists. A compromised release could execute code with the agent's permissions; this is a supply-chain risk, not evidence of an MCP server or malicious intent. The referenced plugin installation rules might mitigate this, but their contents are not provided.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx hyperframes'.

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The validation command uses npx without a package version, allowing execution of an unreviewed release when a suitable local dependency is unavailable. Although checking a slideshow is legitimate, a compromised package runs with the agent's filesystem and environment access. This is another occurrence of the same supply-chain issue, not an MCP-specific vulnerability.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx hyperframes'.

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The presentation command can fetch and execute an unpinned package through npx, exposing the agent to compromised or unexpectedly changed releases. Serving a deck is an intended operation, but it still executes package code with the agent's permissions. The supplied text does not establish that the server is exposed publicly or that it is an MCP server.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx hyperframes'.

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The command is a CLI invocation, not an MCP server reference, but the underlying unpinned-execution concern is valid: npx can download and execute a registry-selected version of hyperframes when a suitable local installation is absent. A compromised package release could execute with the developer or agent's filesystem and environment access; the legitimate media-resolution purpose does not restrict those privileges.

Content

No source excerpt is available for this finding.

The Three.js example imports executable code from a CDN at runtime despite the documented prohibition on runtime network requests.

Medium
Category
Excessive Agency
Confidence
90% confidence
Finding

The Three.js example imports executable JavaScript from a third-party CDN at page load, introducing a runtime supply-chain dependency into generated decks. Although the URL pins version 0.160.0, it does not independently verify the returned bytes; compromised delivery could execute code in the importing document's context, and external loading also undermines offline and deterministic operation.

Content

No source excerpt is available for this finding.

The Three.js setup loads executable code from a third-party CDN without warning about the external request or trust implications.

Medium
Category
Output Handling
Confidence
88% confidence
Finding

This duplicates the CDN-import exposure identified by SDI-4 rather than establishing a separate vulnerability. The optional visual-effect example silently adds externally supplied executable code to decks; its exact version reduces version drift but does not eliminate CDN trust or integrity risks.

Content

No source excerpt is available for this finding.

Catalog search queries are required to be in English without user opt-in or a documented justification.

Low
Category
Output Handling
Confidence
91% confidence
Finding

The instruction explicitly requires the visual description in the catalog query to be written "in English." This imposes a language constraint without offering a choice or documenting why the catalog requires English.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.