audio-transcribe
Pass
Audited by Gen Agent Trust Hub on Sep 15, 2026
Risk Level: SAFEEXTERNAL_DOWNLOADSCOMMAND_EXECUTIONPRIVILEGE_ESCALATIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [EXTERNAL_DOWNLOADS]: The skill downloads pre-trained models from ModelScope and Hugging Face, clones the MiMo-V2.5-ASR repository from Xiaomi's official GitHub account, and installs the flash-attn library from Dao-AILab's GitHub releases. These sources are established and reputable within the machine learning community.
- [COMMAND_EXECUTION]: The scripts transcribe.py and mimo_asr.py use subprocess.run to execute ffmpeg and ffprobe for audio conversion and validation. These calls utilize list-based arguments, which prevents shell injection vulnerabilities.
- [PRIVILEGE_ESCALATION]: The setup_env.sh script attempts to install ffmpeg using sudo apt-get if it is not available on the system. This is a standard and legitimate practice for setting up necessary system dependencies in a development environment.
- [DYNAMIC_EXECUTION]: The patch_clustering.py script modifies the source code of the installed funasr library's source to replace a standard eigenvalue solver with a sparse version optimized for large matrices. This performance patch is clearly documented and targeted at improving processing time for long recordings.
- [INDIRECT_PROMPT_INJECTION]: The skill ingests audio transcription results and user-provided reference documents to perform LLM-powered text cleanup and speaker verification.
- Ingestion points: Transcribed speech from transcribe.py and external reference files passed via the --reference argument.
- Boundary markers: The LLM prompts include explicit section headers and instructions (e.g., 'Reference material', 'Clean the following transcript segment') to guide the LLM's focus and separate instructions from content.
- Capability inventory: The skill can execute audio processing commands via subprocess.run and perform network operations for LLM API interaction (boto3, anthropic, openai).
- Sanitization: Input data is not explicitly sanitized or escaped before being interpolated into LLM prompts, relying instead on boundary instructions and model guardrails.
Audit Metadata