AI Security Review
scanned 6d ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. Install-time setup creates package-owned skill packs for the ChainlessChain CLI. This is agent extension lifecycle risk, but no exfiltration, stealth persistence, foreign AI-agent hijack, or unconsented broad control-surface mutation was confirmed.
Decision evidence
public snapshot- package.json runs scripts/postinstall.mjs at install time
- postinstall imports src/lib/skill-packs/generator.js and calls generateCliPacks({force:false})
- generator writes SKILL.md and handler.js into getElectronUserDataDir()/skills for many CLI domains
- generated handlers can later spawn the chainlesschain CLI from agent skill execution
- postinstall writes first-party chainlesschain skill packs, not a foreign broad AI-agent config
- generated handlers validate command names and reject shell metacharacters before shell:true spawnSync
- MCP OAuth code stores tokens under ~/.chainlesschain/mcp-oauth.json with 0600 mode and HTTPS checks
- Runtime npm install is user-invoked update command with semver validation and confirmation
Source & flagged code
11 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 · L2