video-voiceover

Pass

Audited by Gen Agent Trust Hub on Oct 7, 2026

Risk Level: SAFECOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTIONEXTERNAL_DOWNLOADS
Full Analysis
  • [COMMAND_EXECUTION]: The skill uses ffmpeg and ffprobe for audio extraction, duration calculation, and muxing. All subprocess calls (via lib.run_cmd) use a list-based argument structure and avoid shell=True, which prevents shell injection vulnerabilities. Paths provided as arguments are converted to Path objects or strings.
  • Evidence: scripts/lib.py (run_cmd function), scripts/dub.py (_ffmpeg, _ffmpeg_extract_wav), and scripts/voiceover.py (_prepare_voice_reference).
  • [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted data from narration.json and dub_script.json (specifically the narration and emotion fields). These fields are interpolated into natural language instructions sent to the MiMo TTS API. While this allows for potential prompt injection into the TTS engine's controller, the impact is restricted to the synthesis phase. The skill implements _clean_narration_text to strip markdown and stage instructions, which reduces the surface area.
  • Ingestion point: narration.json in scripts/voiceover.py and dub_script.json in scripts/dub.py.
  • Capability inventory: Network operations via urllib.request and subprocess execution of media tools.
  • Boundary markers: The skill does not use specific delimiters but performs manual text cleanup.
  • Sanitization: scripts/voiceover.py uses _clean_narration_text to filter instructions like [climax] or (aside).
  • [EXTERNAL_DOWNLOADS]: The skill fetches audio data from MiMo, Fish Audio, and self-hosted IndexTTS endpoints. The implementation includes a _sanitize_api_error utility that redacts API keys (matching sk- or tp- patterns) from error messages to prevent credential leakage in logs.
  • Evidence: scripts/lib.py (_sanitize_api_error) and scripts/providers/fish_audio.py (synthesize_fish_audio).
  • [DATA_EXFILTRATION]: The skill implements a security-hardened transport for self-hosted IndexTTS endpoints. It uses a custom _NoRedirectHandler to prevent the agent's narration text from being forwarded to unauthorized hosts via HTTP redirects (SSRF mitigation). It also validates endpoints to ensure they do not contain embedded credentials in the URL structure.
  • Evidence: scripts/providers/index_tts.py (_NoRedirectHandler, validate_index_tts_config).
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 7, 2026, 09:37 AM