Open-source AI Agent Security Scanner — OWASP ZAP for AI Agents. Scan MCP configs, monitor agent behavior, detect permission drift, simulate policy impact.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in arshan846/pluto-aguard
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 36df45c · analyzer v28 · 1d ago
danger signals1
- dynamic code execution eval()/exec() arshan846-pluto-aguard-36df45c/examples/demo-agent-project/agent.py :24
result = eval(response.choices[0].message.content)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 50
filesystem 10
- fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/baseline/runner.py :8
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/controls/runner.py :9
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/evidence/runner.py :6
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/monitor/runner.py :22
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/scanners/ai_config_scanner.py :10
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/scanners/mcp_scanner.py :28
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/scanners/permission_scanner.py :9
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/scanners/runner.py :7
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/simulator/runner.py :12
from pathlib import Path - fs arshan846-pluto-aguard-36df45c/src/pluto_aguard/suppressions.py :35
from pathlib import Path
shell / exec 2
- shell arshan846-pluto-aguard-36df45c/src/pluto_aguard/controls/registry.py :136
description="Detect code that executes LLM-generated output via eval(), exec(), subprocess, or os.system().", - shell arshan846-pluto-aguard-36df45c/src/pluto_aguard/scanners/ai_config_scanner.py :181
"os.system() with LLM output",
declared dependencies 11
- click@>=8.0
- rich@>=13.0
- pyyaml@>=6.0
- pydantic@>=2.0
- jinja2@>=3.1
- pytest@>=7.0
- pytest-cov@>=4.0
- ruff@>=0.4
- mypy@>=1.0
- opentelemetry-api@>=1.20
- opentelemetry-sdk@>=1.20