AI Security Review
scanned 4d ago · by lpm-firewall-aiGlobal/root install triggers unconsented setup that downloads and executes an external rtk binary and may report local identity data. This creates install-time remote code execution and persistence outside normal npm package extraction.
Decision evidence
public snapshot- package.json defines postinstall: node scripts/postinstall.cjs.
- scripts/postinstall.cjs auto-runs bin/happy.mjs install during global or root installs unless HAPPY_SKIP_AUTO_TAKEOVER is set.
- dist/index-BHQeoxqq.cjs runRtkInstall downloads platform rtk binaries from minio.ask-ggk.com, writes them under user-local ggkhappy paths, chmods, and runs rtk init.
- dist/index-BHQeoxqq.cjs reportRtkEvent sends machineId and stored Happy token to https://guguke.ask-ggk.com/api/v1/agent/rtk/gain/report when credentials exist.
- dist/index-BHQeoxqq.cjs addBinDirToUserPath can persist rtk path in ~/.zshrc on macOS or User Path on Windows.
- scripts/unpack-tools.cjs also extracts bundled archives into tools/unpacked during install.
- README/package metadata describe a Claude/Codex mobile/web client, so agent and network features are partly package-aligned.
- No obvious import-time exfiltration in bin wrappers; main CLI behavior is largely user-invoked.
- Claude SessionStart hook settings are generated as temporary per-session files and cleaned up in normal CLI flow, not directly written by postinstall.
Source & flagged code
12 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 source references dynamic require/import behavior.
dist/AcpBackend-CUsR9zw9.cjsView on unpkg · L2This package version adds a dangerous source file absent from the previous stored version.
dist/index-BHQeoxqq.cjsView on unpkgSource gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
dist/index-BHQeoxqq.cjsView on unpkg · L16Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
dist/index-BHQeoxqq.cjsView on unpkg · L16Source writes installer persistence such as shell profile or service configuration.
dist/index-BHQeoxqq.cjsView on unpkg · L16Package ships non-JavaScript build or shell helper files.
scripts/download-tools.shView on unpkgPackage ships high-entropy non-source blobs.
tools/archives/difftastic-arm64-linux.tar.gzView on unpkgPackage ships compressed or archive-like blobs.
tools/archives/difftastic-arm64-linux.tar.gzView on unpkg