Caveat verdict
gstack
Headless browser QA testing skill for site verification; uses agent_memory for session tracking as part of its stated browser testing purpose with no suspicious exfiltration.
⚠ 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
agent_memory
Findings (19)
Writes to SKILL.md — self-modifying skill
SKILL.md · prose · downgraded · SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, othe
Pipe-to-shell pattern (curl | sh) — supply chain attack vector
SKILL.md · prose · downgraded · curl -fsSL https://bun.sh/install | bash
Pipe to bash — executes piped content as shell commands
SKILL.md · prose · downgraded · | bash
<script> tag in markdown — potential code injection
browse/src/cookie-picker-ui.ts · prose · downgraded · <script>
Accesses sensitive system files
browse/test/commands.test.ts · prose · downgraded · /etc/passwd
Possible hardcoded credential
browse/test/cookie-import-browser.test.ts · prose · downgraded · password = "test-keychain-password
Recursive delete from root or home — destructive command
README.md · prose · downgraded · rm -rf ~
References agent configuration files
document-release/SKILL.md · frontmatter · CLAUDE.md
Accesses system credential store
ARCHITECTURE.md · prose · downgraded · Keychain
Instructs covert action — may act without user awareness
browse/src/write-commands.ts · prose · downgraded · silently
Uses spawn() — can execute external programs
browse/src/cli.ts · prose · downgraded · spawn(
Bun.spawn — spawns subprocess in Bun runtime
browse/src/cli.ts · prose · downgraded · Bun.spawn
HTTP request to bare IP address — common in malicious payloads
browse/src/cli.ts · prose · downgraded · http://127.0.0.1
Dynamic import() — loads module at runtime
browse/src/meta-commands.ts · prose · downgraded · import('
References child_process — can spawn system processes
browse/test/commands.test.ts · prose · downgraded · child_process
Uses exec() — may execute shell commands
test/skill-validation.test.ts · prose · downgraded · exec(
Opens WebSocket connection
ARCHITECTURE.md · prose · downgraded · WebSocket
Bun file read API
browse/src/server.ts · prose · downgraded · Bun.file(
Accesses sensitive environment variables
test/skill-e2e.test.ts · prose · downgraded · process.env.ANTHROPIC_API_KEY
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.
agent_memory Is this flag fair?
Thanks — recorded.