AI Security Review
scanned 1d ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. On `npm install`, the package creates ChainlessChain-managed skill packs in its desktop user-data directory. Those packs can later execute allowlisted ChainlessChain CLI commands when invoked by the package's skill runtime; no exfiltration or foreign AI-agent takeover was confirmed.
Decision evidence
public snapshot- `package.json` runs `node scripts/postinstall.mjs` on install.
- `scripts/postinstall.mjs` imports and runs `generateCliPacks()` automatically.
- `src/lib/skill-packs/generator.js` writes `SKILL.md` and `handler.js` under the ChainlessChain desktop user-data `skills` directory.
- Generated direct/hybrid handlers invoke `chainlesschain` through `spawnSync` with `shell: true`; metacharacters are filtered first.
- Postinstall contains no network request, credential collection, shell launch, or foreign-agent config path.
- Generated files are package-defined ChainlessChain skill packs, not writes to `.claude`, `.codex`, `.cursor`, or similar foreign control surfaces.
- Chrome CDP support is registered behind explicit `cc browse chrome` commands and restricts its connector endpoint to loopback.
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/lib/chrome-connector.jsView on unpkg