Caveat verdict
erpclaw
Local-first ERP system with SQLite, parameterized queries, RBAC, and explicit network access limited to a public exchange-rates API and user-approved GitHub module installs; executionSinkDetected is from documented setup/initialization scripts.
⚠ 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 (11)
Writes to SKILL.md — self-modifying skill
CHANGELOG.md · prose · downgraded · SKILL.md so static-analysis review correctly attributes write
Instructs covert action — may act without user awareness
CHANGELOG.md · prose · downgraded · silently
Accesses system credential store
CHANGELOG.md · prose · downgraded · Keychain
os.system/popen — direct OS command execution
scripts/db_query.py · prose · downgraded · os.execvp(
subprocess execution — runs system commands from Python
scripts/erpclaw-billing/db_query.py · prose · downgraded · subprocess.run(
Popular HTTP library — network access
SKILL.md · prose · downgraded · got
References agent configuration files
CHANGELOG.md · prose · downgraded · CLAUDE.md
Python os.environ.get — reads environment variable
scripts/db_query.py · prose · downgraded · os.environ.get(
Python urllib.request — network access
scripts/module_manager.py · prose · downgraded · urllib.request
Python shutil file operation — copies/moves/deletes files
scripts/module_manager.py · prose · downgraded · shutil.rmtree(
Blob URL — may embed executable content
scripts/module_manager.py · prose · downgraded · blob:
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class D). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.
Permissions & capabilities
Requires 2 system binaries. (1 elevated: git).
Is this flag fair?
Thanks — recorded.