AI Security Review
scanned 8h ago · by lpm-firewall-aiThe package has an npm postinstall hook that updates a consumer project's Claude Code control surface. If a project already has .claude, install-time code copies MoFlo scripts and helpers into .claude/scripts and .claude/helpers without an explicit runtime command.
Decision evidence
public snapshot- postinstall runs scripts/post-install-bootstrap.mjs automatically from package.json
- scripts/post-install-bootstrap.mjs uses INIT_CWD/project cwd and copies package files into consumer .claude/scripts and .claude/helpers when .claude exists
- bin/lib/shipped-scripts.json includes agent/control helpers such as hooks.mjs, session-start-launcher.mjs, prompt-hook.mjs, statusline.cjs, pre-commit, post-commit
- scripts/post-install-notice.mjs writes .moflo/restart-pending.json during Claude sessions to instruct restart after install
- post-install-bootstrap skips when no consumer .claude directory exists and exits 0 on failures
- prune-native-binaries.mjs is scoped to onnxruntime-node binary pruning with opt-out MOFLO_NO_PRUNE
- No credential harvesting or exfiltration endpoint was confirmed in inspected lifecycle scripts
Source & flagged code
15 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 unpkgPackage contains a critical-looking secret pattern.
dist/src/cli/guidance/manifest-validator.jsView on unpkg · L702RSA private key in dist/src/cli/guidance/manifest-validator.js
dist/src/cli/guidance/manifest-validator.jsView on unpkg · L702Package source references child process execution.
bin/generate-code-map.mjsView on unpkg · L30Hardcoded password in dist/src/cli/guidance/analyzer.js
dist/src/cli/guidance/analyzer.jsView on unpkg · L1284Hardcoded password in dist/src/cli/guidance/analyzer.js
dist/src/cli/guidance/analyzer.jsView on unpkg · L2067Package source references a known benign dynamic code generation pattern.
dist/src/cli/guidance/analyzer.jsView on unpkg · L2043Package source references dynamic require/import behavior.
bin/run-migrations.mjsView on unpkg · L61Package source references weak cryptographic algorithms.
bin/lib/file-sync.mjsView on unpkg · L1Source writes installer persistence such as shell profile or service configuration.
dist/src/cli/services/daemon-service.jsView on unpkg · L8Package source invokes a package manager install command at runtime.
dist/src/cli/update/executor.jsView on unpkg · L62This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.
dist/src/cli/init/executor.jsView on unpkgHardcoded password in .claude/agents/core/reviewer.md
.claude/agents/core/reviewer.mdView on unpkg · L81