AI Security Review
scanned 7d ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. Install-time code deploys GoodVibes agent extension files into the user's home directory and downloads executable release binaries. This is a first-party agent platform lifecycle extension risk, but not a confirmed foreign agent hijack or classic malware path.
Decision evidence
public snapshot- package.json defines preinstall and postinstall lifecycle hooks: scripts/check-bun.sh and scripts/postinstall.js.
- scripts/postinstall.js downloads platform binaries during install into vendor/ and chmods them executable.
- scripts/postinstall.js lifecycle-copies bundled agent/skill instructions into ~/.goodvibes/tui/{agents,skills} and ~/.goodvibes/GOODVIBES.md.
- .goodvibes/GOODVIBES.md contains mandatory agent behavior instructions installed at home scope.
- .goodvibes/agents/reviewer.md and .goodvibes/skills/add-provider/SKILL.md are package-supplied agent/skill extension content.
- Lifecycle writes are under GoodVibes-owned ~/.goodvibes paths, not CLAUDE.md, Codex, Cursor, .mcp.json, shell startup, VCS hooks, or OS autostart surfaces.
- Downloaded release assets are from the package repository release URL and checked against SHA256SUMS when a checksum entry exists.
- No credential harvesting or exfiltration path was confirmed in inspected lifecycle/bin files.
- Service/autostart code appears user-invoked via goodvibes service commands, not install-time.
- QEMU/systemd and subprocess behavior in scanner-highlighted files is runtime sandbox/service functionality, not automatic install persistence.
Source & flagged code
17 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgPackage contains a possible secret pattern.
src/panels/modals/pairing-modal.tsView on unpkg · L137Package source references child process execution.
bin/launcher-support.jsView on unpkg · L2Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/launcher-support.jsView on unpkgPackage source references dynamic require/import behavior.
src/input/commands/hooks-runtime.tsView on unpkg · L120A single source file combines environment access, network access, and code or shell execution; review context before blocking.
src/verification/live-verifier.tsView on unpkg · L89Source writes persistence or remote-access backdoor material.
src/runtime/sandbox-public-gaps.tsView on unpkg · L2Package ships non-JavaScript build or shell helper files.
scripts/check-bun.shView on unpkgSource file is highly similar to a previously finalized malicious package; route for source-aware review.
src/input/commands/platform-sandbox-qemu.tsView on unpkgSource file is highly similar to a previously finalized malicious package; route for source-aware review.
src/cli/completions/generate.tsView on unpkgSource file is highly similar to a previously finalized malicious package; route for source-aware review.
src/cli/help.tsView on unpkgSource file is highly similar to a previously finalized malicious package; route for source-aware review.
src/runtime/sandbox-qemu-templates.tsView on unpkgHardcoded password in src/panels/builtin-modals.ts
src/panels/builtin-modals.tsView on unpkg · L212Hardcoded password in src/runtime/onboarding/apply.ts
src/runtime/onboarding/apply.tsView on unpkg · L91