AI Security Review
scanned 4h ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. No confirmed malicious attack surface was found by source inspection. Residual risk is a first-party AI-agent platform that installs project-scoped Claude/Codex hooks and can arm project hook trust during explicit setup/update flows.
Decision evidence
public snapshot- package.json has postinstall: node scripts/fix-better-sqlite3.cjs
- scripts/fix-better-sqlite3.cjs downloads better-sqlite3 prebuilds from github.com during install if native binary fails
- dist/core/installCodexHooks.js writes project .codex/hooks.json with multiple agent hooks
- dist/core/codexHookArm.js can arm those hooks by driving Codex trust flow and reading $HOME/.codex/config.toml
- dist/commands/init.js creates .claude/settings.json and refreshes Claude/Codex hooks during user-invoked init/update flows
- dist/threadline/ThreadlineBootstrap.js can register/connect Threadline MCP/relay at runtime when server is started
- No install-time code writes .claude, .codex, CLAUDE.md, or broad agent control surfaces; postinstall only targets better-sqlite3 repair
- Codex hooks are scoped to projectDir/.codex/hooks.json, with comments and checks rejecting global ~/.codex/hooks.json mutation
- armCodexHooks verifies hooks are instar-owned before trust arming and does not use dangerous sandbox bypass flags
- Packaged .claude skills/hooks are inert until user-invoked setup/init/autonomous flows
- dist/index.js is export-only and does not perform import-time side effects
- Scanner secret/unicode hints map to security skill docs/parsing code, not credential harvesting or exfiltration
Source & flagged code
12 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgPackage contains a critical-looking secret pattern.
skills/credential-leak-detector/SKILL.mdView on unpkg · L27AWS access key ID in skills/credential-leak-detector/SKILL.md
skills/credential-leak-detector/SKILL.mdView on unpkg · L27GitHub personal access token in skills/credential-leak-detector/SKILL.md
skills/credential-leak-detector/SKILL.mdView on unpkg · L28RSA private key in skills/credential-leak-detector/SKILL.md
skills/credential-leak-detector/SKILL.mdView on unpkg · L31Package source references child process execution.
dist/threadline/PipeSessionSpawner.jsView on unpkg · L15Package source references shell execution.
dist/threadline/PipeSessionSpawner.jsView on unpkg · L281Package source references dynamic require/import behavior.
dist/memory/SemanticMemory.jsView on unpkg · L428A single source file combines environment access, network access, and code or shell execution; review context before blocking.
skills/spec-converge/scripts/publish-spec-review.mjsView on unpkg · L20Source contains bidi control or invisible Unicode characters associated with Trojan Source attacks.
dist/core/upgradeAnnouncement.jsView on unpkg · L19Package hides binary, compressed, or executable-looking payloads in test/fixture/hidden paths.
.claude/hooks/free-text-guard.shView on unpkgPackage ships non-JavaScript build or shell helper files.
.claude/hooks/free-text-guard.shView on unpkg