Fix repository config puts credentials in reach of a repository-controlled command in any host

A hook command, task, or MCP server declaration in this repository references a credential-shaped variable, or asks for the whole process environment. Nothing is hardcoded - the secret is stored correctly and then handed to a command the repository controls.

high likely any host CWE-522 / ASI ASI03

The vulnerable pattern in any host

HIGH likely active Repository config puts credentials in reach of a repository-controlled command ASI03 .mcp.json:8:7 6 │ "mcp-any" 7 │ ], 8 │ "inheritEnv": true │ ~~~~~~~~~~~~ hands the whole environment to a subprocess 9 │ } 10 │ }

This finding comes from the any host fixture in the owlwarden test suite. The declaration asks for the entire process environment rather than an explicit allowlist, so every credential the developer has is inside a process this repository configured.

The corrected configuration

Pass an explicit allowlist of environment variables to anything the repository can define, and keep credentials out of command strings, where they are one `echo` away from a log.

"env": { "SERVICE_TOKEN": "${SERVICE_TOKEN}" }

If you are not using any host

Stop passing the credential to a repository-defined command. Give the subprocess an explicit environment allowlist holding only what it needs, and keep everything else out of its reach.

Check your own repository

npx owlwarden scan
npx owlwarden explain agent-config-secret-reachable

Runs on your machine. No account, no telemetry, no network unless you ask. In CI, SARIF uploads to code scanning and the exit code is the gate.

Other any host checks

Rules with a tested any host example.

agent-config-secret-reachable for every agent host / All rules / owlwarden