Caveat verdict
researchvault
Local-first research orchestration engine using SQLite with optional search API keys (Brave, Serper, SearXNG); all listed environment variables are optional and scoped to search API access consistent with the declared research 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.
Permission integrity
package_install
Findings (11)
Pipe to bash — executes piped content as shell commands
scripts/core.py · prose · downgraded · |bash
Possible hardcoded credential
start_portal.sh · prose · downgraded · token="$(tr -d
Accesses sensitive system files
tests/exploit_ssrf.py · prose · downgraded · /etc/passwd
HTTP request to bare IP address — common in malicious payloads
portal/backend/app/main.py · prose · downgraded · http://127.0.0.1
subprocess execution — runs system commands from Python
portal/backend/app/vault_exec.py · prose · downgraded · subprocess.run(
Dynamic import() — loads module at runtime
portal/frontend/tailwind.config.js · prose · downgraded · import('
Python os.getenv — reads environment variable
portal/backend/app/auth.py · prose · downgraded · os.getenv(
Python os.environ.get — reads environment variable
scripts/core.py · prose · downgraded · os.environ.get(
Popular HTTP library — network access
scripts/synthesis.py · prose · downgraded · got
Blob URL — may embed executable content
scripts/synthesis.py · prose · downgraded · blob:
Python urllib.request — network access
start_portal.sh · prose · downgraded · urllib.request
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class A/B/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.
package_install Is this flag fair?
Thanks — recorded.