Caveat verdict
pgmemory
Persistent semantic memory using local PostgreSQL and pgvector; wizard sets up the user own database and embedding provider, all local infrastructure consistent with the stated agent memory 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 (8)
Pipe-to-shell pattern (curl | sh) — supply chain attack vector
scripts/setup.py · prose · downgraded · curl -fsSL https://get.docker.com | sh
Pipe to sh — executes piped content as shell commands
scripts/setup.py · prose · downgraded · | sh
subprocess execution — runs system commands from Python
scripts/setup.py · prose · downgraded · subprocess.run(
References sudo — requests elevated privileges
scripts/setup.py · prose · downgraded · sudo
subprocess with shell=True — command injection vector
scripts/setup.py · prose · downgraded · subprocess.run("curl -fsSL https://get.docker.com | sh", shell=True
References agent memory files
SKILL.md · prose · downgraded · MEMORY.md
Python urllib.request — network access
scripts/query_memory.py · prose · downgraded · urllib.request
Python os.environ.get — reads environment variable
scripts/query_memory.py · 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
No declared permissions — minimal attack surface.
Is this flag fair?
Thanks — recorded.