Back to skill

Security audit

Hyperframes Media

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent media-preprocessing guide, but it repeatedly asks users to run unpinned internet-downloaded tools that can change after review.

Review this skill before installing if you use it on a sensitive workstation. Prefer a pinned, vetted `hyperframes` version and pinned Python dependencies, and run the media commands in a least-privileged project or container without unnecessary credentials exposed.

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:15
Finding

Unpinned Third-Party Packages Are Downloaded and Executed

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 15–17, 56, 63–67, 112–117, and 238–239
Vulnerability Type: Unpinned executable dependencies and unsafe supply-chain trust
Risk Level: Medium

Vulnerable Code

SKILL.md, lines 15–17:

bash
npx hyperframes tts "Text here" --voice af_nova --output narration.wav
npx hyperframes tts script.txt --voice bf_emma --output narration.wav
npx hyperframes tts --list

SKILL.md, line 56:

bash
pip install kokoro-onnx soundfile

SKILL.md, lines 63–67:

bash
npx hyperframes transcribe audio.mp3
npx hyperframes transcribe video.mp4 --model small --language es
npx hyperframes transcribe subtitles.srt
npx hyperframes transcribe subtitles.vtt
npx hyperframes transcribe openai-response.json

SKILL.md, lines 112–117:

bash
npx hyperframes remove-background subject.mp4 -o transparent.webm
npx hyperframes remove-background subject.mp4 -o transparent.mov
npx hyperframes remove-background portrait.jpg -o cutout.png
npx hyperframes remove-background subject.mp4 -o subject.webm \
  --background-output plate.webm
npx hyperframes remove-background subject.mp4 -o transparent.webm --device cpu
npx hyperframes remove-background --info

SKILL.md, lines 238–239:

bash
npx hyperframes tts script.txt --voice af_heart --output narration.wav
npx hyperframes transcribe narration.wav

Technical Analysis

The Skill repeatedly instructs users or agents to execute hyperframes through npx without specifying an audited package version. If the package is absent locally, npx can retrieve a currently available registry release and execute its lifecycle and application code with the invoking user's privileges.

The Python dependencies kokoro-onnx and soundfile are also installed without version constraints or cryptographic hashes. The project contains no lockfile, dependency manifest with integrity meta ...[truncated 2111 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin hyperframes to a specific audited version in every command, such as:

    bash
    npx --yes hyperframes@1.2.3 tts "Text here" --voice af_nova --output narration.wav
    
  2. Maintain an npm lockfile containing package versions and integrity metadata. Prefer a reviewed local installation invoked through a package script rather than downloading executable code ad hoc on every use.

  3. Pin Python dependencies in a requirements file:

    text
    kokoro-onnx==AUDITED_VERSION
    soundfile==AUDITED_VERSION
    
  4. Generate and enforce cryptographic hashes for Python dependencies, then install them with hash verification:

    bash
    python -m pip install --require-hashes -r requirements.txt
    
  5. Review and pin transitive dependencies where feasible. Update versions through a controlled process that includes source review, vulnerability scanning, and functional testing.

  6. Document the approved npm and Python package indexes. Prevent fallback to untrusted mirrors and avoid adding dependency sources based on untrusted input.

  7. Publish checksums and trusted download origins for the machine-learning model files downloaded on first use, and verify those checksums before loading the models.

  8. Run media-processing dependencies in a least-privileged environment or container with restricted filesystem access, no unnecessary credentials, and limited outbound network connectivity.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (22)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill repeatedly instructs users to run npx hyperframes without pinning an exact package version. npx will fetch the latest published package at execution time, so a compromised upstream release, typo-squatted dependency, or breaking update could cause unreviewed code execution on the user's machine.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This example invokes npx hyperframes without a pinned version, which allows execution of whatever package version is current at runtime. In a skill file that is meant to be copied verbatim by users, that creates a software supply-chain risk because remote code is fetched and executed implicitly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Unpinned npx hyperframes means the command's behavior and code origin are not stable over time. If the package or one of its dependencies is compromised, users following this documentation could execute malicious code during model download or preprocessing operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The npx hyperframes command is unpinned here as well, exposing users to arbitrary upstream changes or malicious package publication at the time of use. Because these are CLI instructions, the risk is direct code execution rather than a passive documentation issue.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This line instructs execution of npx hyperframes without constraining the package version. That makes the skill non-reproducible and vulnerable to supply-chain compromise through malicious or unexpected future releases.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
### Long Scripts

For more than a few paragraphs, write to a `.txt` file and pass the path. Inputs over ~5 minutes of speech may benefit from splitting into segments.

### Requirements

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This transcription example uses npx with no package pinning, so the executed code may differ from what the skill author tested. Since the tool processes local media files and downloads models, a compromised package could access local data or execute arbitrary actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

An unpinned npx hyperframes command creates a registry-time dependency on whatever package version is currently published. That is a real supply-chain risk because users are encouraged to run it directly on their systems with local files as inputs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This documentation line repeats the same unpinned package execution pattern. If the package or a transitive dependency is hijacked, users copying the command could run attacker-controlled code while expecting only subtitle import behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The command uses transient execution of a non-versioned npm package, which is a classic supply-chain exposure. The context increases practical risk because the skill is an instruction set intended for direct operator use, not merely internal code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This example also relies on the latest available hyperframes package through npx, enabling silent code changes over time. A malicious upstream release could exploit the trust users place in these examples to gain execution on developer workstations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The background-removal example invokes npx hyperframes without version pinning, so users fetch and execute remote code at runtime. Because the command handles local media and may trigger model downloads, compromise could affect confidentiality and integrity of the host environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This npx usage is vulnerable to supply-chain drift and package compromise because it lacks an exact version. Users following the skill may reasonably assume the documentation is safe and stable, but the command delegates trust to the current npm registry state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The package is not pinned in this example, so future releases can alter code execution without any documentation change. That is a real vulnerability pattern for skill content because it encourages direct execution of remote, mutable software.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This line repeats the unpinned npx pattern and therefore inherits the same supply-chain execution risk. If an attacker gains control of the package or publishing pipeline, users could execute malicious code under the guise of checking device info.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The command fetches and runs hyperframes from npm without an exact version, exposing users to mutable upstream code. Documentation that normalizes this pattern can materially increase exploitability because operators often copy commands directly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Like the other examples, this unpinned npx invocation creates a direct remote code execution path via the npm supply chain. The skill context does not mitigate the issue; if anything, repeated examples reinforce unsafe operational practice.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
The cutout webm is a **re-encoded copy** of the source mp4's RGB. That choice has consequences depending on what you put behind it:

| Pattern                                                  | What's behind the cutout                   | Result                                                                                                                                                                                                                            |
| -------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cutout over a different scene** (most common)          | Static image, gradient, or unrelated video | Looks great. The cutout's RGB is the only source of the subject — no doubling, no edge halo. This is what `remove-background` is built for.                                                                                       |
| **Cutout over its own source mp4** (text-behind-subject) | Same mp4 the cutout was generated from     | Two RGB sources for the same person. At default `--quality balanced` (crf 18) the doubling is barely visible; at `--quality fast` (crf 30) you'll see a faint color shift / edge halo. Use `--quality best` (crf 12) for masters. |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
| Pattern                                                  | What's behind the cutout                   | Result                                                                                                                                                                                                                            |
| -------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cutout over a different scene** (most common)          | Static image, gradient, or unrelated video | Looks great. The cutout's RGB is the only source of the subject — no doubling, no edge halo. This is what `remove-background` is built for.                                                                                       |
| **Cutout over its own source mp4** (text-behind-subject) | Same mp4 the cutout was generated from     | Two RGB sources for the same person. At default `--quality balanced` (crf 18) the doubling is barely visible; at `--quality fast` (crf 30) you'll see a faint color shift / edge halo. Use `--quality best` (crf 12) for masters. |
| **Cutout over a _different_ take of the same person**    | Footage of the same subject                | Will look like two separate people overlapping. Don't do this.                                                                                                                                                                    |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
| -------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cutout over a different scene** (most common)          | Static image, gradient, or unrelated video | Looks great. The cutout's RGB is the only source of the subject — no doubling, no edge halo. This is what `remove-background` is built for.                                                                                       |
| **Cutout over its own source mp4** (text-behind-subject) | Same mp4 the cutout was generated from     | Two RGB sources for the same person. At default `--quality balanced` (crf 18) the doubling is barely visible; at `--quality fast` (crf 30) you'll see a faint color shift / edge halo. Use `--quality best` (crf 12) for masters. |
| **Cutout over a _different_ take of the same person**    | Footage of the same subject                | Will look like two separate people overlapping. Don't do this.                                                                                                                                                                    |

**Text-behind-subject** (headline behind a presenter):

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The TTS-to-transcribe workflow begins with another unpinned npx hyperframes command, carrying the same supply-chain risk as earlier occurrences. Anyone following the documented chain may execute code that differs from the reviewed skill behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This final example still executes npx hyperframes without version pinning, so the transcription step depends on mutable upstream software. Because it operates on user-provided local media, a malicious package could abuse file access or environment permissions.

Content

No source excerpt is available for this finding.