T08 · Insecure Dependencies
Warning
- Location
- references/combination-hyperframes.md:182
- Finding
- Unaudited Third-Party Dependencies Are Downloaded and Executed Through npx## Vulnerability Details **File Location**: `references/combination-hyperframes.md:89-95, 182-187`; related installation instructions also appear in `SKILL.md:18-20, 41-51, 97-106` **Vulnerability Type**: Third-party supply-chain exposure through automatic dependency retrieval and execution **Risk Level**: Medium ### Vulnerable Code Snippets `references/combination-hyperframes.md:89-95`: ```markdown | Skill | Description | Install | | --- | --- | --- | | `hyperframes` | Entry point for HTML → MP4 composition — routes to product-launch-video, general-video, and related workflows. | `npx skills add heygen-com/hyperframes@hyperframes -y` | Full HyperFrames bundle (all domain skills): `npx skills add heygen-com/hyperframes --full-depth -y` ``` `references/combination-hyperframes.md:182-187`: ```json "scripts": { "check": "npx --yes hyperframes@0.7.68 check", "render": "npx --yes hyperframes@0.7.68 render" } ``` `SKILL.md:97-106`: ```markdown | Skill | Description | Install | | --- | --- | --- | | `generation-diversity` | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | `npx skills add PrunaAI/pruna-skills@generation-diversity -y` | | `whisperx` | Use when someone needs word-level timestamps from audio — lyric alignment, cut-safe line boundaries, or caption source timing before burn-in with video-editing. | `npx skills add PrunaAI/pruna-skills@whisperx -y` | | `stable-audio-2.5` | Use when someone wants light instrumental background music — an ambient bed under dialogue or underscore for reels and explainers. | `npx skills add PrunaAI/pruna-skills@stable-audio-2.5 -y` | | `gemini-3.1-flash-tts` | Use when someone needs spoken narration or voiceover — explainer tracks, documentary lines, or voice to pair with generated video. | `npx skills add PrunaAI/pruna-skills@gemini-3.1-flash-tts -y` | | `audio-prompting` | Use when crafting TTS, music, or bed prompts for any generativ ...[truncated 2974 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every external Skill to an immutable, reviewed commit hash rather than a mutable branch, tag, or Skill selector. 2. Retain exact npm package versions and add a committed lockfile containing registry integrity hashes. 3. Use `npm ci` with a pre-reviewed dependency tree instead of allowing `npx` to resolve and execute packages dynamically during a workflow. 4. Vendor critical rendering dependencies or use internally mirrored packages whose provenance and integrity are controlled. 5. Verify package signatures, checksums, publisher identity, and transitive dependencies before execution. 6. Remove unattended `-y` and `--yes` behavior where practical. Require explicit user approval before downloading or executing external code. 7. Run external rendering tools in a sandbox or container with: - Access restricted to the required project directory. - No access to unrelated home-directory files. - Secrets removed from the environment unless strictly required. - Network access disabled after dependency acquisition where feasible. - Resource limits and a non-privileged user. 8. Document the precise external versions and hashes that were security-reviewed so future agents can detect dependency drift.
