AI Security Review
scanned 3d ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. Install runs a first-party skill-pack generator that writes agent/CLI extension files into the ChainlessChain desktop user-data skills directory. This is an agent extension lifecycle risk, but I did not find unconsented mutation of a foreign/broad AI-agent control surface or exfiltration.
Decision evidence
public snapshot- package.json defines postinstall: node scripts/postinstall.mjs
- scripts/postinstall.mjs imports src/lib/skill-packs/generator.js during npm install
- src/lib/skill-packs/generator.js writes SKILL.md and handler.js under getElectronUserDataDir()/skills
- generated handlers can run chainlesschain subcommands via spawnSync shell:true after argument metacharacter filtering
- src/lib/skill-packs/schema.js advertises agent/CLI skill packs with file/command capability descriptions
- postinstall does not fetch remote code or run npm/package installs
- postinstall only generates first-party chainlesschain skill pack files and prints optional SQLite note
- shell execution paths are in generated user-invoked handlers, not immediate install-time execution
- src/harness/mcp-client.js spawns configured MCP servers or fetches configured URLs at runtime, not hardcoded exfiltration
- update command validates semver before npm install -g chainlesschain@version
- No credential harvesting or hardcoded attacker endpoint found in inspected lifecycle/entry/hot files
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 child process execution.
src/auth/npm-auth.jsView on unpkg · L6Package source references a known benign dynamic code generation pattern.
src/lib/plugin-ecosystem.jsView on unpkg · L86Package source references dynamic require/import behavior.
scripts/postinstall.mjsView on unpkg · L6Package source references weak cryptographic algorithms.
src/harness/prompt-compressor.jsView on unpkg · L680A single source file combines environment access, network access, and code or shell execution; review context before blocking.
src/lib/mcp-oauth.jsView on unpkg · L30Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
src/lib/mcp-oauth.jsView on unpkg · L30Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
src/commands/init.jsView on unpkg · L58Package source invokes a package manager install command at runtime.
src/commands/update.jsView on unpkg · L2This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.
src/harness/mcp-client.jsView on unpkg