Caveat verdict
skillguard
skillguard-asi
A local security scanner analyzing skill ZIP files for OWASP ASI threats using Python stdlib with no network dependencies; scope is local-only static analysis.
⚠ 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 (9)
Uses eval() — can execute arbitrary code
skillguard/detectors/code_execution.py · prose · downgraded · eval(
Pipe to bash — executes piped content as shell commands
skillguard/detectors/network_whitelist.py · prose · downgraded · |bash
Pipe to python — executes piped content as Python code
skillguard/detectors/network_whitelist.py · prose · downgraded · |python
Uses exec() — may execute shell commands
skillguard/detectors/code_execution.py · prose · downgraded · exec(
os.system/popen — direct OS command execution
skillguard/detectors/code_execution.py · prose · downgraded · os.system(
subprocess execution — runs system commands from Python
skillguard/detectors/code_execution.py · prose · downgraded · subprocess.run(
Accesses .ssh directory
skillguard/detectors/sensitive_file_access.py · prose · downgraded · .ssh/
References tunneling service
skillguard/detectors/network_whitelist.py · prose · downgraded · ngrok
Python os.getenv — reads environment variable
skillguard/detectors/secret_exposure.py · prose · downgraded · os.getenv(
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class A/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.
Is this flag fair?
Thanks — recorded.