motion-kit

Fail

Audited by Gen Agent Trust Hub on Oct 1, 2026

Risk Level: HIGHDATA_EXFILTRATIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTIONCOMMAND_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
  • [DATA_EXFILTRATION]: The script runtime/inline.mjs is vulnerable to directory traversal. It reads local files specified in <script src="..."> and <link href="..."> tags to bundle them into a single HTML file. Because it uses path.resolve with unsanitized paths, a maliciously crafted HTML file could be used to read sensitive local data (e.g., ../../../../etc/passwd) and embed it in the output.
  • [DYNAMIC_EXECUTION]: The toolkit's primary workflow, implemented in render/render.mjs and render/still.mjs, involves launching a headless Chromium browser via Playwright to execute agent-generated JavaScript. While intended for rendering, this creates a significant execution surface for any code injected into the animation source files.
  • [INDIRECT_PROMPT_INJECTION]: The render/analyze.mjs and render/beatmap.mjs tools process external media files (video/audio).
  • Ingestion points: Reference MP4 and MP3 files are parsed by ffmpeg and ffprobe in render/analyze.mjs and render/beatmap.mjs.
  • Boundary markers: There are no boundary markers or instructions to ignore embedded commands in the processed output files (report.md, analysis.json).
  • Capability inventory: The skill can execute shell commands via spawn (ffmpeg, ffprobe) and run arbitrary JS in a browser context via Playwright.
  • Sanitization: Metadata and analysis results are written directly to reports without filtering, allowing crafted file attributes to potentially influence the agent's behavior during review.
  • [COMMAND_EXECUTION]: Multiple scripts in the render/ directory (render.mjs, analyze.mjs, beatmap.mjs) spawn subprocesses for ffmpeg and ffprobe. While arguments are structured, the reliance on external binaries increases the potential impact of other vulnerabilities.
  • [EXTERNAL_DOWNLOADS]: The skill fetches assets and libraries from external CDNs.
  • Fetches coastline data in GeoJSON format from Vercel/natural-earth sources via https://cdn.jsdelivr.net/npm/world-atlas@2/land-110m.json in runtime/film.js.
  • Loads Three.js and its addons from https://cdn.jsdelivr.net/npm/three@0.160.0/ in examples/demo/demo.html.
  • Imports typography from https://fonts.googleapis.com.
Recommendations
  • AI detected serious security threats
Audit Metadata
Risk Level
HIGH
Analyzed
Oct 1, 2026, 03:06 PM