Back to skill

Security audit

Hyperframes Cli

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent HyperFrames CLI helper, but it asks agents to run mutable npm code and can install unspecified additional AI coding skills.

Install only if you trust the current HyperFrames npm package and are comfortable with it modifying projects and potentially installing additional skills. Prefer a pinned, reviewed CLI version or a lockfile-backed local install, run it in a limited workspace, and avoid `--non-interactive` until the installed skills and consent controls are clearly documented.

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

Error
Location
SKILL.md:8
Finding
Unpinned npm Package Execution and Transitive Skill Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 8-34 **Vulnerability Type**: Unpinned third-party package execution and undocumented transitive installation **Risk Level**: High ### Vulnerable Code ```markdown Everything runs through `npx hyperframes`. Requires Node.js >= 22 and FFmpeg. ## Workflow 1. **Scaffold** — `npx hyperframes init my-video` 2. **Write** — author HTML composition (see the `hyperframes` skill) 3. **Lint** — `npx hyperframes lint` 4. **Visual inspect** — `npx hyperframes inspect` 5. **Preview** — `npx hyperframes preview` 6. **Render** — `npx hyperframes render` Lint and inspect before preview. `lint` catches missing `data-composition-id`, overlapping tracks, and unregistered timelines. `inspect` opens the rendered composition in headless Chrome, seeks through the timeline, and reports text spilling out of bubbles/containers or off the canvas. ## Scaffolding ```bash npx hyperframes init my-video # interactive wizard npx hyperframes init my-video --example warm-grain # pick an example npx hyperframes init my-video --video clip.mp4 # with video file npx hyperframes init my-video --audio track.mp3 # with audio file npx hyperframes init my-video --example blank --tailwind # with Tailwind v4 browser runtime npx hyperframes init my-video --non-interactive # skip prompts (CI/agents) ``` Templates: `blank`, `warm-grain`, `play-mode`, `swiss-grid`, `vignelli`, `decision-tree`, `kinetic-type`, `product-promo`, `nyt-graph`. `init` creates the right file structure, copies media, transcribes audio with Whisper, and installs AI coding skills. Use it instead of creating files by hand. ``` ### Technical Analysis The skill consistently instructs the Agent to execute `npx hyperframes` without specifying an audited package version. When a suitable local package is unavailable, `npx` can retrieve and execute the package distributed under that name. Because neither a version nor an i ...[truncated 2499 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every invocation to a reviewed, immutable package version, for example: ```bash npx --yes hyperframes@<reviewed-version> <command> ``` 2. Commit an appropriate lockfile and use reproducible installation mechanisms such as `npm ci` where a project-level installation is practical. 3. Verify package provenance and integrity through npm provenance attestations, trusted-registry restrictions, integrity hashes, and dependency review. 4. Prefer installing the pinned CLI as a declared development dependency and invoking the local binary instead of resolving a mutable package on every command. 5. Explicitly list every AI coding skill installed by `init`, including its source, version, destination, required permissions, and integrity information. 6. Require clear user confirmation before installing or modifying Agent skills. Provide a documented flag that disables all secondary skill installation, especially for CI and non-interactive operation. 7. Execute scaffolding and rendering in a sandbox or container with least-privilege filesystem access, restricted network access, and no unnecessary secrets in environment variables. 8. Add automated dependency auditing and release-signature verification to the documented workflow. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (43)

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The skill repeatedly instructs use of `npx hyperframes` without a pinned package version, including in the manifest. `npx` will fetch and execute the latest package version from the registry, so a compromised maintainer account, malicious update, or dependency-chain attack could cause arbitrary code execution on the host running the skill.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This line directs users to run `npx hyperframes` without version pinning. Because `npx` may download and execute whatever version is currently published, the skill creates a supply-chain execution path that can lead to arbitrary code execution if the package or its dependencies are compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The workflow recommends `npx hyperframes` commands without version pinning. In this context, the skill is normalizing execution of remote package code during routine development actions, increasing exposure to package takeover or malicious release scenarios.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
Running `npx hyperframes init my-video` without an exact version causes implicit trust in the latest published package. If that package changes maliciously, the initialization step can execute attacker-controlled code and modify the filesystem.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The lint command is presented via unpinned `npx`, which can fetch new code at execution time. Even ostensibly read-only validation commands can run arbitrary pre/post-install or runtime logic from a compromised package.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The inspect command uses `npx hyperframes` without version pinning, exposing users to supply-chain risk. Because this command also drives headless Chrome, compromise could combine package execution with browser automation on local content.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The preview command is unpinned and therefore may execute whatever latest code `npx` resolves. Since preview commonly opens a local server and browser, a malicious package could expose local files, credentials, or network services.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The render command is unpinned, so the skill directs users to execute remote code during artifact creation. A compromised release could tamper with outputs, exfiltrate project assets, or run arbitrary code on CI or developer workstations.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This scaffold example invokes an unpinned remote package. Initialization commands are especially risky because they create files, fetch assets, and may trigger downstream installs, magnifying impact if the package is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This example adds `--example` but still relies on unpinned `npx`. The dynamic template-fetching/scaffolding context makes supply-chain compromise more dangerous because users expect file generation and may not scrutinize resulting changes.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The `--video` scaffold example uses unpinned `npx`, enabling arbitrary code execution plus access to local media files supplied by the user. A malicious package could exfiltrate those assets or modify them during import.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The `--audio` scaffold example combines unpinned package execution with local audio ingestion. This enlarges impact because the package can access potentially sensitive recordings while performing setup operations.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The Tailwind scaffold example still executes `npx hyperframes` without version pinning. Because it affects project dependencies and runtime configuration, a malicious release could inject unsafe code into the generated project structure.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
npx hyperframes init my-video --video clip.mp4        # with video file
npx hyperframes init my-video --audio track.mp3       # with audio file
npx hyperframes init my-video --example blank --tailwind # with Tailwind v4 browser runtime
npx hyperframes init my-video --non-interactive       # skip prompts (CI/agents)
```

Templates: `blank`, `warm-grain`, `play-mode`, `swiss-grid`, `vignelli`, `decision-tree`, `kinetic-type`, `product-promo`, `nyt-graph`.
Confidence
85% confidence
Finding
The documentation explicitly recommends a `--non-interactive` mode for CI/agents, enabling unattended scaffolding and associated side effects. In the context of this skill, that is risky because the same `init` flow can copy files, transcribe audio, and install additional skills without a human reviewing prompts or changes.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
Using `--non-interactive` with unpinned `npx` is particularly dangerous because it removes user confirmation checkpoints in CI/agent contexts. That makes silent execution of a compromised package more likely and potentially fully automated.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill states that `init` copies media, transcribes audio with Whisper, and installs AI coding skills, but it does not foreground these as consequential side effects requiring explicit user awareness or consent. In agent or CI use, this can cause unexpected network access, local file processing, dependency changes, and installation of additional tooling beyond simple scaffolding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The lint command is documented as an unpinned `npx` invocation. Although lint sounds low risk, `npx` still executes package code with the caller's privileges, so compromise can affect the local machine or CI runner.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This specific-path lint example remains unpinned and therefore vulnerable to supply-chain substitution. The ability to target arbitrary directories may increase the blast radius if malicious code scans or modifies project contents.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The verbose lint example still runs a transient, unpinned package. The command's diagnostic nature does not reduce the underlying risk that package code can execute arbitrary logic before producing output.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
JSON output mode is documented through unpinned `npx`, exposing automated agents to a mutable external package. Agent-readable workflows are especially sensitive because they may be embedded into unattended automation pipelines.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The inspect command at this line is still an unpinned `npx` execution. Because inspect drives headless Chrome over project content, a malicious release could abuse browser automation and local filesystem access in one step.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The project-specific inspect example is unpinned and thus subject to registry-side package drift. This broadens risk to any specified project directory that the package can inspect, read, or alter.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The JSON inspect example is tailored for agents but uses an unpinned `npx` package. In unattended contexts, that creates a strong supply-chain risk because arbitrary code may be fetched and executed without human review.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The `--samples` inspect example still uses unpinned `npx`. Extra runtime complexity does not change the root issue: latest package code executes with local privileges and access to project assets.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This targeted timestamp inspect example relies on unpinned `npx`, allowing arbitrary package updates to alter what executes. The skill context makes this more dangerous because users are encouraged to trust the CLI for rich local analysis and browser automation.

Static analysis

No suspicious patterns detected.