hyperframes
15 findings (9 critical, 2 medium, 3 low, 1 info), mainly command injection, unauthorized tool use, data exfiltration. Most recent scan 2026-10-22.
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
- Package
- 77 files, 1.1 MB
- SKILL.md
- 1035 words, 6 sections
- Code
- JavaScript (6)
SKILL.md covers: HyperFrames · Contract · Keep it editable · Work loop · The HyperFrames desktop app · What to read
Findings
CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: from "node:child_process"
scripts/bake-basemap.mjs:26
import { spawnSync } from "node:child_process";CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: spawnSync(
scripts/bake-basemap.mjs:280
const ff = spawnSync(CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: from "node:child_process"
scripts/lib/main-module.test.mjs:4
import { spawnSync } from "node:child_process";CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: spawnSync(
scripts/lib/main-module.test.mjs:18
const run = spawnSync(process.execPath, [join(dir, "skills", script), "not-a-command"], {CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: from "node:child_process"
scripts/locate.mjs:23
import { execFileSync } from "node:child_process";CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: from "node:child_process"
scripts/plugin-cli.mjs:3
import { spawnSync } from "node:child_process";CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: spawnSync(
scripts/plugin-cli.mjs:78
const result = spawnSync(command.command, command.args, {CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: from "node:child_process"
scripts/plugin-cli.test.mjs:2
import { spawnSync } from "node:child_process";CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic
Pattern detected: spawnSync(
scripts/plugin-cli.test.mjs:108
const result = spawnSync(MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic
Pattern detected: fetch(
scripts/bake-basemap.mjs:196
fetch("https://cdn.jsdelivr.net/npm/world-atlas@2.0.2/countries-110m.json").then(function(r){return r.json();}).then(function(w){MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic
Pattern detected: fetch(
scripts/locate.mjs:215
const res = await fetch(LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic
Script contacts or configures 'server.arcgisonline.com' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.
scripts/bake-basemap.mjs:127
LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic
Script contacts or configures 'a.basemaps.cartocdn.com' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.
scripts/bake-basemap.mjs:128
LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic
Script contacts or configures 'cdn.jsdelivr.net' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.
scripts/bake-basemap.mjs:149
INFO Skill does not specify a license Policy Violationstatic
Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.
SKILL.md
What is in the package
77 files, 1.1 MB. Show the list.
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 7.0 KB |
references/captions.md | doc | 4.8 KB |
references/film.md | doc | 6.9 KB |
references/format.md | doc | 12 KB |
references/look.md | doc | 5.9 KB |
references/motion.md | doc | 11 KB |
references/overlays.md | doc | 2.5 KB |
references/plugin-installation.md | doc | 2.6 KB |
references/review.md | doc | 5.2 KB |
references/runtimes.md | doc | 3.0 KB |
references/skill-lifecycle.md | doc | 3.5 KB |
references/sound.md | doc | 3.5 KB |
references/spec.md | doc | 5.9 KB |
references/story.md | doc | 11 KB |
references/storyboard-format.md | doc | 6.5 KB |
references/storyboard.md | doc | 4.0 KB |
scripts/bake-basemap.mjs | script | 18 KB |
scripts/locate.mjs | script | 8.0 KB |
scripts/plugin-cli.mjs | script | 2.8 KB |
scripts/plugin-cli.test.mjs | script | 4.3 KB |
references/types/3d.md | doc | 1.6 KB |
references/types/character.md | doc | 1.6 KB |
references/types/data.md | doc | 1.3 KB |
references/types/explainer.md | doc | 3.0 KB |
references/types/launch.md | doc | 2.8 KB |
references/types/music.md | doc | 1.6 KB |
references/types/vertical.md | doc | 1.6 KB |
scripts/lib/main-module.mjs | script | 479 B |
scripts/lib/main-module.test.mjs | script | 1.9 KB |
assets/frame-presets/biennale-yellow/FRAME.md | doc | 17 KB |
assets/frame-presets/biennale-yellow/caption-skin.html | data | 7.9 KB |
assets/frame-presets/biennale-yellow/frame-showcase.html | data | 34 KB |
assets/frame-presets/blockframe/FRAME.md | doc | 16 KB |
assets/frame-presets/blockframe/caption-skin.html | data | 8.1 KB |
assets/frame-presets/blockframe/frame-showcase.html | data | 38 KB |
assets/frame-presets/blue-professional/FRAME.md | doc | 17 KB |
assets/frame-presets/blue-professional/caption-skin.html | data | 8.1 KB |
assets/frame-presets/blue-professional/frame-showcase.html | data | 38 KB |
assets/frame-presets/bold-poster/FRAME.md | doc | 16 KB |
assets/frame-presets/bold-poster/caption-skin.html | data | 8.5 KB |
assets/frame-presets/bold-poster/frame-showcase.html | data | 32 KB |
assets/frame-presets/broadside/FRAME.md | doc | 16 KB |
assets/frame-presets/broadside/caption-skin.html | data | 8.2 KB |
assets/frame-presets/broadside/frame-showcase.html | data | 33 KB |
assets/frame-presets/capsule/FRAME.md | doc | 17 KB |
assets/frame-presets/capsule/caption-skin.html | data | 8.2 KB |
assets/frame-presets/capsule/frame-showcase.html | data | 42 KB |
assets/frame-presets/cartesian/FRAME.md | doc | 17 KB |
assets/frame-presets/cartesian/caption-skin.html | data | 8.1 KB |
assets/frame-presets/cartesian/frame-showcase.html | data | 35 KB |
assets/frame-presets/cobalt-grid/FRAME.md | doc | 17 KB |
assets/frame-presets/cobalt-grid/caption-skin.html | data | 8.6 KB |
assets/frame-presets/cobalt-grid/frame-showcase.html | data | 46 KB |
assets/frame-presets/code-editorial/FRAME.md | doc | 20 KB |
assets/frame-presets/code-editorial/caption-skin.html | data | 8.1 KB |
assets/frame-presets/code-editorial/frame-showcase.html | data | 43 KB |
assets/frame-presets/coral/FRAME.md | doc | 19 KB |
assets/frame-presets/coral/caption-skin.html | data | 8.1 KB |
assets/frame-presets/coral/frame-showcase.html | data | 36 KB |
assets/frame-presets/creative-mode/FRAME.md | doc | 19 KB |
assets/frame-presets/creative-mode/caption-skin.html | data | 8.2 KB |
assets/frame-presets/creative-mode/frame-showcase.html | data | 38 KB |
assets/frame-presets/daisy-days/FRAME.md | doc | 17 KB |
assets/frame-presets/daisy-days/caption-skin.html | data | 8.3 KB |
assets/frame-presets/daisy-days/frame-showcase.html | data | 41 KB |
assets/frame-presets/editorial-forest/FRAME.md | doc | 17 KB |
assets/frame-presets/editorial-forest/caption-skin.html | data | 8.2 KB |
assets/frame-presets/editorial-forest/frame-showcase.html | data | 36 KB |
assets/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 | binary | 21 KB |
assets/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 | binary | 23 KB |
assets/frame-presets/code-editorial/fonts/Inter-400.woff2 | binary | 23 KB |
assets/frame-presets/code-editorial/fonts/Inter-700.woff2 | binary | 24 KB |
assets/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 | binary | 21 KB |
assets/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 | binary | 21 KB |
assets/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt | doc | 4.4 KB |
assets/frame-presets/code-editorial/fonts/OFL-inter.txt | doc | 4.4 KB |
assets/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt | doc | 4.4 KB |
External hosts referenced
fonts.googleapis.com cdn.jsdelivr.net fonts.gstatic.com github.com scripts.sil.org a.basemaps.cartocdn.com generativelanguage.googleapis.com server.arcgisonline.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
PROJECTION GEMINI_API_KEY GOOGLE_API_KEY OPENROUTER_API_KEY
Package contents recorded 2026-10-22 at commit 4371981b740d. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Bytecode analyzer.
- Pipeline analyzer.
- Correlation analyzer.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/heygen-com/hyperframes
- Raw scan result: heygen-com-hyperframes-skills-hyperframes-scan.json
- Badge for your README:
 - Request a re-scan