Caveat verdict
vettr
Static analysis security scanner for OpenClaw skills using tree-sitter AST parsing; uses execFile (not shell spawn) for external binaries and explicitly documents the safe wrapper.
⚠ 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.
Permission integrity
package_install
Findings (10)
Uses eval() — can execute arbitrary code
src/analyzers/ast-analyzer.ts · prose · downgraded · eval(
Dynamic Function constructor — equivalent to eval()
src/analyzers/ast-analyzer.ts · prose · downgraded · new Function(
Pipe to python — executes piped content as Python code
.github/workflows/ai-review.yml · prose · downgraded · |
python3
Uses exec() — may execute shell commands
src/analyzers/pattern-analyzer.ts · prose · downgraded · exec(
References child_process — can spawn system processes
src/utils/exec-safe.ts · prose · downgraded · child_process
subprocess execution — runs system commands from Python
.github/workflows/ai-review.yml · prose · downgraded · subprocess.run(
Accesses system credential store
src/analyzers/metadata-analyzer.ts · prose · downgraded · keychain
Popular HTTP library — network access
SKILL.md · prose · downgraded · axios
Python urllib.request — network access
.github/workflows/ai-review.yml · prose · downgraded · urllib.request
Python os.environ.get — reads environment variable
.github/workflows/ai-review.yml · prose · downgraded · os.environ.get(
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
Requires 1 system binary.
package_install Is this flag fair?
Thanks — recorded.