AI Security Review
scanned 6d ago · by lpm-firewall-aiThe confirmed risk is install-time dependency/browser installation into a user runtime directory, plus user-invoked CLI tool configuration writes. No source-grounded malicious exfiltration, destructive behavior, or unconsented AI-agent control hijack was confirmed.
Decision evidence
public snapshot- package.json runs postinstall: node cli/hooks/postinstall.js || exit 0
- cli/hooks/postinstall.js calls ensureSqliteRuntime, ensureTrayRuntime, and ensurePlaywrightRuntime at install time
- cli/hooks/sqliteRuntime.js runs npm install better-sqlite3@12.6.2 into ~/.zevai/runtime
- cli/hooks/trayRuntime.js installs systray2@2.1.4 and removes legacy systray from runtime dirs
- cli/hooks/playwrightRuntime.js installs playwright and runs playwright install chromium
- src/app/api/cli-tools/codex-settings/route.js can write ~/.codex/config.toml and auth.json when invoked
- No install-time credential harvesting or exfiltration found in inspected hooks
- Runtime npm installs target named dependencies matching package features: SQLite, tray, Playwright automation
- Network use is mostly package-aligned router/updater/provider traffic
- Codex and Claude config writes are behind explicit API/menu actions, not lifecycle execution
- No prompt/reviewer manipulation strings found in source search
- Scanner secret hit in bundled chunk is jose library code, not an embedded credential
Source & flagged code
18 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgPackage declares a runtime dependency whose name matches a Node built-in module.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgPackage contains a critical-looking secret pattern.
cli/app/.next-cli-build/server/chunks/42.jsView on unpkg · L1RSA private key in cli/app/.next-cli-build/server/chunks/42.js
cli/app/.next-cli-build/server/chunks/42.jsView on unpkg · L1Package source references child process execution.
open-sse/handlers/ttsProviders/localDevice.jsView on unpkg · L1Package source references shell execution.
open-sse/handlers/ttsProviders/localDevice.jsView on unpkg · L35Package source references dynamic require/import behavior.
open-sse/translator/index.jsView on unpkg · L32Package source references weak cryptographic algorithms.
src/mitm/cert/install.jsView on unpkg · L2Source writes installer persistence such as shell profile or service configuration.
cli/src/cli/tray/autostart.jsView on unpkg · L3A single source file combines environment access, network access, and code or shell execution; review context before blocking.
cli/app/src/mitm/server.jsView on unpkg · L24Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
cli/app/src/mitm/server.jsView on unpkg · L24Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
cli/cli.jsView on unpkg · L2Package source invokes a package manager install command at runtime.
cli/app/src/lib/updater/updater.jsView on unpkg · L1Package ships non-JavaScript build or shell helper files.
cli/src/cli/tray/tray.ps1View on unpkgPackage ships high-entropy non-source blobs.
cli/app/.next-cli-build/static/media/ba9851c3c22cd980-s.woff2View on unpkgThis package version adds a dangerous source file absent from the previous stored version.
cli/app/cli/hooks/sqliteRuntime.jsView on unpkgRSA private key in cli/app/.next-cli-build/server/chunks/8971.js
cli/app/.next-cli-build/server/chunks/8971.jsView on unpkg · L1