Caveat verdict
infinity-router
Configures free OpenRouter model selection by reading OPENROUTER_API_KEY and writing local config files; proportionate credential access for configuration purpose.
⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.
Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.
Findings (6)
Possible hardcoded credential
README.md · code · API_KEY="sk-or-v1-...
Recursive delete from root or home — destructive command
uninstall.sh · prose · downgraded · rm -rf ~
Instruction-prose smuggling shape detected: collects a sensitive target ("API keys") and emits it outward ("POST"). Phrased as prose with no trigger tokens — a semantic prompt-injection / data-exfil pattern the syntactic scanners can't see. Final tier capped at Caution; review the instructions before installing.
SKILL.md · | Command | When to run | |---------|-------------| | `infinity-router pick` | Set up best free model + fallbacks (most common) | | `infinity-router pick --vali
Accesses OpenClaw config/secrets directly
SKILL.md · prose · downgraded · ~/.openclaw/openclaw.json
subprocess execution — runs system commands from Python
src/infinity_router/watcher.py · prose · downgraded · subprocess.run(
Python os.environ.get — reads environment variable
src/infinity_router/cli.py · prose · downgraded · os.environ.get(
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class B/D). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.
Permissions & capabilities
No declared permissions — minimal attack surface.
credential_access Is this flag fair?
Thanks — recorded.