moa
Pass
Audited by Gen Agent Trust Hub on Jul 8, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
- [COMMAND_EXECUTION]: The skill uses the
subprocessmodule to executecodexandclaudeCLI tools. - Evidence: Found in
scripts/adapters.pywithin the_run_clifunction. It executes commands using a list of arguments (avoiding shell injection) and restricts the environment variables passed to the child process to a whitelist (PATH,HOME,USER, etc.). - [EXTERNAL_DOWNLOADS]: The skill makes network requests to the OpenRouter API to fetch model responses.
- Evidence: Found in
scripts/adapters.pyusingurllib.requestto connect tohttps://openrouter.ai/api/v1/chat/completions. OpenRouter is a well-known service for LLM inference. - [DATA_EXPOSURE]: The skill reads API credentials from a local configuration file.
- Evidence: Found in
scripts/adapters.pywhere it attempts to readOPENROUTER_API_KEYfrom~/.claude/auth/ai-ml-services.envif the environment variable is not set. This is a standard practice for local credential management. - [PROMPT_INJECTION]: The skill processes data from external models, creating a surface for indirect prompt injection (Category 8).
- Ingestion points: Output from OpenRouter, Codex, or Claude CLI tools entering the agent context via the
dispatchfunction inscripts/adapters.py. - Boundary markers: Responses are wrapped in Markdown headers (e.g.,
### Reference N) and the skill provides explicit instructions to the aggregator agent (_SYNTHESIS_HINTinscripts/moa.py) to treat these references as external viewpoints rather than direct instructions. - Capability inventory: The skill can execute subprocesses (
codex,claude) and perform network requests viaurllib. - Sanitization: Includes a
sanitize_errorfunction inscripts/adapters.pythat uses regex to mask API keys and bearer tokens in error messages before they are displayed.
Audit Metadata