Back to skill

Security audit

video-asset-sources

Security checks for vulnerabilities and agentic risk

Overview

The verdict is benign with medium confidence: scanners found no AIG issues, while Skillspector flagged scope mismatches and unpinned installers; its review was partial because two references could not be resolved.

The verdict is benign, but confidence is medium and Skillspector's analysis is partial: two local references could not be resolved. Before installing, consider whether the extra reference-search and editing guidance fits your needs, and review the unpinned `npx` commands and third-party search-query sharing.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (25)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The supplied commands form a reference-discovery and analysis workflow, not a workflow for acquiring legally reusable assets. They search reference-oriented resources and measure cuts locally, without fetching production assets or establishing reuse rights. The absence of license checks alone would not establish a mismatch in a partial code chunk, but the explicit focus on references conflicts directly with the description's exclusion of references to study.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The supplied commands retrieve instructional or reference material rather than locate and fetch reusable production assets. The YouTube command specifically skips downloading the video and requests only subtitles. Neither command visibly checks asset licensing or records attribution. Although fetching documentation could support the declared workflow, the reference-video subtitle retrieval falls outside its stated scope.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · references/tested-queries.md (reported line 35)May include surrounding context.

bash
# Incompetech: the full catalog is one JSON, so you can filter by tempo first. Needs the exact credit line, or a paid license for ads.
curl -s 'https://incompetech.com/music/royalty-free/pieces.json' | python3 -c "import json,sys;print([(p['title'],p['bpm'],p['length']) for p in json.load(sys.stdin) if 'Uplifting' in (p.get('feel') or '') and str(p.get('bpm') or '').isdigit() and 90<=int(p['bpm'])<=130][:10])"

# Mixkit, no credit.
curl -sL -A 'Mozilla/5.0' 'https://mixkit.co/free-stock-music/ambient/' | grep -aoE 'https://assets\.mixkit\.co/music/[0-9]+/[0-9]+\.mp3' | sort -u

MCP server referenced without pinned version: 'npx skills'.

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

The installation example executes an npm package through npx without specifying a version, allowing the executed installer to change between installations. Although this is a CLI installer rather than an MCP server, a compromised future package release could execute code with the installing user's permissions; the supplied content does not establish any actual compromise.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## When a need is not listed

1. Search varg How-To once: `curl -s 'https://api.varg.ai/v2/skills/search?q=QUERY&limit=5'`. (Disclosure: varg makes this skill and that catalog. Rank it by what it returns.)
2. For a 3D or game asset, search 3D Asset Server.
3. Try one open source with a license field. If nothing matches, generate.

The fallback workflow sends search queries to a third-party catalog without a data-sharing warning.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

This step instructs the agent to submit an asset-need query to api.varg.ai. The parenthetical discloses the catalog's affiliation but does not warn that user-derived query content, potentially including project details, will be shared with that service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/all-sources.md (reported line 29)May include surrounding context.

md
effects | The best measured route to quality music with trim-to-length, if someone pays. | Free use: the API's free plan says 'Prototyping only, you cannot go live on this plan. Inc |
| [Mixkit Music](https://mixkit.co/free-stock-music/) | 4 | HTML | yes | 36 MP3 URLs on the 'ambient' page. Total not measured. | A quick free music bed with no key and no credit line. | Long pieces, stems, a specific tempo: no BPM data on the page. |
| [Generated music (Mureka, Lyria, ElevenLabs Music via varg)](https://api.varg.ai/v2) | 4 | API | paid | n/a | A bed cut to an exact length and mood, with no library match or credit line. | When you need a known song or a beat-accurate structure without iteration. |
| [ende.app](https://ende.app/en) | 3 | HTML | with credit | 2,479 tracks stated on the page | Free production music with a clear license. | Agent search: no API measured. |
| [Openverse audio](https://openverse.org/) | 2.5 | API | varies per item | 5,223,435 audio items (wikimedia_audio 3,986,

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/all-sources.md (reported line 108)May include surrounding context.

md
2,059, Apache 36, UFL 5, CC0 1, MIT 1 | License-checked font choice; self-hosted for deterministic rendering. | Discovering new display faces. |
| [Poly Haven](https://polyhaven.com/) | 5 | API | yes | 997 HDRIs, 869 textures, 521 models (2,387 total) | Studio lighting and realistic reflections in 3D scenes (96 studio HDRIs). | 2D editing. |
| [Iconify](https://iconify.design/) | 5 | API | varies per item | 473,655 icons in 276 sets | Any icon by name as SVG in one URL. | Using an arbitrary set without checking: 53 of 276 sets are CC-BY-4.0, 6 are GPL, 2 are no |
| [Lucide](https://lucide.dev/) | 5 | JSON | yes | 2,019 icons | Default UI icons in overlays. | Logos. |
| [ambientCG](https://ambientcg.com/) | 4.5 | API | yes | 2,929 assets | PBR materials. | 2D editing. |
| [3D Asset Server](https://3d.shep.bot/) | 4.5 | API | varies per item | 26 providers (measured); 14,414 searches in 7 days on its pu | Finding a 3D model, HDRI or sprite in one call. | Paid-source results may need a lo

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 9)May include surrounding context.

bash
# Pexels, free key. 2-4 concrete words from the sentence it covers: subject + action, not the concept.
curl -H "Authorization: $PEXELS_API_KEY" 'https://api.pexels.com/videos/search?query=hands+typing+laptop&orientation=portrait&per_page=15'

# Mixkit, no key. Each item must say Free, not Restricted.
curl -sL -A 'Mozilla/5.0' 'https://mixkit.co/free-stock-video/ocean/' | grep -aoE 'https://assets\.mixkit\.co/videos/[0-9]+/[0-9]+-720\.mp4' | sort -u

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 22)May include surrounding context.

bash
# Wikimedia Commons. LicenseShortName must be CC0, PD or CC BY.
curl -sG 'https://commons.wikimedia.org/w/api.php' --data-urlencode 'gsrsearch=ocean filetype:video' -d 'action=query&generator=search&gsrnamespace=6&gsrlimit=10&prop=imageinfo&iiprop=url|size|extmetadata&iiextmetadatafilter=LicenseShortName|Artist&format=json'

# NASA. Credit NASA, imply no endorsement, check the item for third-party credit.
curl -s 'https://images-api.nasa.gov/search?q=ocean&media_type=video'

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 25)May include surrounding context.

md
curl -sG 'https://commons.wikimedia.org/w/api.php' --data-urlencode 'gsrsearch=ocean filetype:video' -d 'action=query&generator=search&gsrnamespace=6&gsrlimit=10&prop=imageinfo&iiprop=url|size|extmetadata&iiextmetadatafilter=LicenseShortName|Artist&format=json'

# NASA. Credit NASA, imply no endorsement, check the item for third-party credit.
curl -s 'https://images-api.nasa.gov/search?q=ocean&media_type=video'

# Internet Archive. Never accept an item without licenseurl.
curl -sG 'https://archive.org/advancedsearch.php' --data-urlencode 'q=ocean AND mediatype:movies AND licenseurl:*publicdomain*' -d 'fl[]=identifier&fl[]=title&fl[]=licenseurl&rows=20&output=json'

MCP server referenced without pinned version: 'npx hyperframes'.

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The unversioned npx hyperframes command can download and execute a changing npm package with the agent's permissions. Although this is a CLI invocation rather than an MCP server, a compromised package release could execute malicious code or access credentials; the asset-installation context makes package execution plausible.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx remotion-bits'.

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The unversioned npx remotion-bits invocation can fetch and execute a changing npm release, even though the requested operation only searches for components. This is not an MCP server invocation, but a compromised release could still execute code with the agent's privileges.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 69)May include surrounding context.

npx remotion-bits find 'fade in' --limit 1 --json

LottieFiles: keyless GraphQL, returns direct JSON URLs. The official MCP creates motion and is not library search.

curl -s -X POST -H 'Content-Type: application/json' -d '{"query":"query { searchPublicAnimations(query:"checkmark", first:10) { totalCount edges { node { name jsonUrl url downloads } } } }"}' 'https://graphql.lottiefiles.com/2022-08'

text

Web component libraries (React Bits, Magic UI, 21st.dev) run in real time, so re-time them to the frame or they break on render. Prefer parts built for rendering.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 90)May include surrounding context.

Fonts, HDRIs, logos, icons, LUTs

bash
curl -s 'https://api.fontsource.org/v1/fonts?subsets=latin&license=OFL-1.1'
curl -s -A 'Mozilla/5.0' 'https://fonts.googleapis.com/css2?family=Inter%3Awght%40800' | grep -oE '<redacted-url>'
curl -s --compressed 'https://api.fontshare.com/v2/fonts'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 92)May include surrounding context.

bash
curl -s 'https://api.fontsource.org/v1/fonts?subsets=latin&license=OFL-1.1'
curl -s -A 'Mozilla/5.0' 'https://fonts.googleapis.com/css2?family=Inter%3Awght%40800' | grep -oE '<redacted-url>'
curl -s --compressed 'https://api.fontshare.com/v2/fonts'

# Poly Haven: CC0. Use a unique User-Agent. Take 2K first (a sample was 6.2 MB).
curl -s -H 'User-Agent: your-app/1.0' 'https://api.polyhaven.com/assets?t=hdris&categories=studio'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 95)May include surrounding context.

md
curl -s --compressed 'https://api.fontshare.com/v2/fonts'

# Poly Haven: CC0. Use a unique User-Agent. Take 2K first (a sample was 6.2 MB).
curl -s -H 'User-Agent: your-app/1.0' 'https://api.polyhaven.com/assets?t=hdris&categories=studio'
curl -s -H 'User-Agent: your-app/1.0' https://api.polyhaven.com/files/ID

curl -s 'https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/stripe.svg'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 96)May include surrounding context.

md
# Poly Haven: CC0. Use a unique User-Agent. Take 2K first (a sample was 6.2 MB).
curl -s -H 'User-Agent: your-app/1.0' 'https://api.polyhaven.com/assets?t=hdris&categories=studio'
curl -s -H 'User-Agent: your-app/1.0' https://api.polyhaven.com/files/ID

curl -s 'https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/stripe.svg'
curl -s 'https://api.svgl.app/?search=stripe'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 99)May include surrounding context.

md
curl -s -H 'User-Agent: your-app/1.0' https://api.polyhaven.com/files/ID

curl -s 'https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/stripe.svg'
curl -s 'https://api.svgl.app/?search=stripe'

curl -s 'https://api.iconify.design/search?query=rocket&limit=10'
curl -s https://api.iconify.design/lucide/rocket.svg

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 101)May include surrounding context.

md
curl -s 'https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/stripe.svg'
curl -s 'https://api.svgl.app/?search=stripe'

curl -s 'https://api.iconify.design/search?query=rocket&limit=10'
curl -s https://api.iconify.design/lucide/rocket.svg
curl -s https://api.iconify.design/collections     # read the set's license here

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 102)May include surrounding context.

md
curl -s 'https://api.svgl.app/?search=stripe'

curl -s 'https://api.iconify.design/search?query=rocket&limit=10'
curl -s https://api.iconify.design/lucide/rocket.svg
curl -s https://api.iconify.design/collections     # read the set's license here

ffmpeg -i in.mp4 -vf lut3d=look.cube out.mp4

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/tested-queries.md (reported line 103)May include surrounding context.

md
curl -s 'https://api.iconify.design/search?query=rocket&limit=10'
curl -s https://api.iconify.design/lucide/rocket.svg
curl -s https://api.iconify.design/collections     # read the set's license here

ffmpeg -i in.mp4 -vf lut3d=look.cube out.mp4
ffmpeg -i in.mp4 -i clut.png -filter_complex '[0:v][1:v]haldclut' out.mp4

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/traps.md (reported line 27)May include surrounding context.

md
login. | Ocean page: 3 of 61 ids user-ai-*, 8 *premium*. cdn.coverr.co/videos/coverr-premium-couple-observes-ocean-waves/1080p.mp4 answered 200. |
| Mixkit Restricted License items | LICENSE TRAP. A second license exists beside the free one. | https://mixkit.co/llm-info/ quote: 'Restricted License: Only allows use in personal, non-commercial projects.' That page also has 'INSTRUCTIONS FOR AI ASSISTANTS' to prom |
| Iconify sets without a license check | LICENSE TRAP. One API, mixed licenses. | https://api.iconify.design/collections : of 276 sets, CC-BY-4.0 53, GPL variants 6, CC-BY-NC variants 2. |
| React Bits as a redistributable kit | LICENSE TRAP for template or kit sellers. Using it in a video or app is fine. | LICENSE.md: 'so long as you do not sell, sublicense, or redistribute the components themselves'. gh reports NOASSERTION, not MIT. |
| GSAP in a visual no-code animation tool | LICENSE TRAP for products, including a Studio-style builder. Using it in a video is fine. | https

The skill includes study-only reference workflows despite explicitly excluding reference research.

Low
Category
Excessive Agency
Confidence
98% confidence
Finding

The manifest explicitly excludes references to study rather than use and delegates that work to find-references. This section instead provides executable commands to search reference videos and film stills and analyze cuts locally; lines L111-L115 further extend this into editing-playbook retrieval and reference-video subtitle extraction.

Content

No source excerpt is available for this finding.

The skill provides video-editing commands despite excluding the edit itself.

Low
Category
Excessive Agency
Confidence
94% confidence
Finding

These ffmpeg commands apply color transformations and write an edited output video rather than discover or fetch LUT assets. The manifest explicitly delegates editing to edit-footage-with-code, so these operations exceed its stated asset-sourcing scope.

Content

No source excerpt is available for this finding.