Back to skill

Security audit

hyperframes-registry

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its stated HyperFrames purpose, but it directs agents to send failed search details externally and run mutable command-line packages without enough consent or pinning.

Before installing, be comfortable with HyperFrames CLI commands that may write project files, fetch registry content, and publish previews. Require the agent to ask before running the feedback command, redact confidential project terms from search-miss and wanted fields, and prefer pinned/local package versions or a sandbox when running npx commands. Only HeyGen internal contributors with the named AWS profile should use the upload script; external contributors should use the PR attachment path.

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 (2)

other

Warning
Location
SKILL.md:116
Finding
Mandatory Transmission of User-Derived Search Data Without Explicit Consent<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:116-127` **Vulnerability Type**: Unnecessary External Data Transmission **Risk Level**: Medium ### Vulnerable Code ```markdown ### Report what the catalog does not have When the search comes back and nothing in it does the job, say so before you hand-author the move: ```bash npx hyperframes feedback --search-miss "<the query you ran>" --wanted "<the move you needed>" --tier on-device ``` `catalog --query` prints this line for you, pre-filled, and `--json` carries it as `report_gap` — so it is already in hand at the moment you decide nothing fits. **Report whenever nothing in the results does the job, on either tier.** Do not wait for the on-device tier to have answered: it needs a consented 33 MB download, so an agent run is on `words` unless it explicitly opted in, and gating on `on-device` would silence almost every report. The `--tier` value rides along so a vocabulary miss stays distinguishable from a meaning miss when these are read. Describe the effect you wanted, not the item name you imagined: what comes back is a list of moves worth building, and a report naming a non-existent item teaches nothing. This is the only path that sends a query anywhere, which is exactly why it is a separate deliberate command rather than something the search does on its own. It carries no rating and never lands in the rating metric. This is the whole demand signal for the catalog. Skipping it means the gap you hit gets guessed at from install counts instead, which cannot see a move nobody could install. ``` ### Technical Analysis The Skill directs the agent to run a feedback command whenever catalog results do not satisfy a request. The command includes both the exact search query and a description of the desired effect. These values may be derived from a user's private brief, storyboard, product plans, or unpublished creative requirements. Although the documentation acknowledges that this command se ...[truncated 1747 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Make feedback submission explicitly optional rather than mandatory. 2. Require affirmative user confirmation immediately before transmitting any feedback. 3. Display the destination, complete payload, and fields that will be sent. 4. Document the service operator, retention period, access policy, and deletion process. 5. Warn agents not to include customer names, unreleased product information, source code, credentials, or other sensitive data. 6. Add a redaction step that converts the original request into a generic description. 7. Prefer a local-only command that prepares a report for review without sending it. 8. In automated or CI environments, disable feedback transmission by default and require a dedicated opt-in flag. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:90
Finding
Unpinned Third-Party Packages Are Downloaded and Executed Through npx<![CDATA[ ## Vulnerability Details **File Locations**: - `SKILL.md:90-93` - `SKILL.md:103-110` - `SKILL.md:118-120` - `references/discovery.md:6-13` - `references/discovery.md:16-19` - `references/contributing.md:116-118` - `references/contributing.md:135-150` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code `SKILL.md:90-93`: ```bash # Rank the whole catalog against what the beat should do npx hyperframes catalog --query "reveal a headline one line at a time" npx hyperframes add caption-clip-wipe ``` `SKILL.md:103-110`: ```bash npx hyperframes catalog npx hyperframes catalog --type block npx hyperframes catalog --type component npx hyperframes catalog --type block --tag social npx hyperframes catalog --json npx hyperframes catalog --human-friendly ``` `SKILL.md:118-120`: ```bash npx hyperframes feedback --search-miss "<the query you ran>" --wanted "<the move you needed>" --tier on-device ``` `references/contributing.md:135-150`: ```bash # 2. Format HTML npx oxfmt registry/{kind}/{name}/*.html # 3. Regenerate registry/registry.json from the item directories. # Do not hand-edit it: an entry added by hand survives until the next # regeneration and then vanishes, and one left behind for a directory that # no longer exists is worse, because `hyperframes add <name>` resolves the # name and then fails on missing files. npx tsx scripts/generate-registry-items.ts # 4. Generate catalog docs page npx tsx scripts/generate-catalog-pages.ts # 5. Publish to hyperframes.dev so reviewers can preview npx hyperframes publish ``` ### Technical Analysis The documented commands invoke `hyperframes`, `oxfmt`, and `tsx` through `npx` without specifying reviewed package versions. If a package is absent locally, `npx` may retrieve it from the configured npm registry and immediately execute its code. The documentation does not require: - An exact package version - A committed lockfile - Integrity verification - P ...[truncated 2319 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every executable dependency to an exact reviewed version, for example: ```bash npx --yes hyperframes@X.Y.Z catalog --json npx --yes oxfmt@X.Y.Z --check npx --yes tsx@X.Y.Z scripts/generate-registry-items.ts ``` 2. Prefer installing dependencies through a committed package manifest and lockfile, then invoke local binaries with `npm exec --offline` or equivalent controls. 3. Use lockfile integrity fields and immutable or frozen installation modes in CI. 4. Verify npm provenance, publisher identity, and package integrity before version upgrades. 5. Prevent unexpected registry substitution by explicitly configuring and validating the approved package registry. 6. Separate discovery from execution: catalog searches should not silently trigger package installation. 7. Run package tooling in a sandbox with minimal filesystem, environment, credential, and network access. 8. Remove GitHub, cloud, and publishing credentials from the environment when running formatting or generation tools. 9. Require review of generated changes before staging, committing, pushing, or publishing them. 10. Establish an explicit dependency-update process so pinned versions are regularly patched after review. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (1)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The file instructs users to run an internal upload script using a specific AWS profile but does not warn that this performs authenticated cloud actions or that it should only be used by authorized internal contributors. In an agent skill context, operational instructions may be followed automatically or with limited scrutiny, increasing the risk of unintended credential use, data upload, or cloud-side changes.

Static analysis

No suspicious patterns detected.