AI Security Review
scanned 1h ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. No unconsented npm install-time attack surface was found. The package does contain explicit user-invoked agent extension installation that modifies AI-agent configs and hooks for Skillsmith integration.
Decision evidence
public snapshot- dist/src/install/agent-pack-installer.js implements explicit agent-pack installation across Claude, Cursor, Codex, Copilot, OpenCode, Hermes, and Windsurf.
- dist/src/install/agent-pack-installer.harness.js writes hook scripts and merges MCP/hook/shim config into agent config files, including Codex TOML.
- dist/src/install/agent-pack-installer.entry.js registers an MCP server command: npx -y @skillsmith/mcp-server.
- dist/src/audit/remote-audit.js can send package-aligned telemetry to https://api.skillsmith.app/functions/v1/events when an API key exists and telemetry is not disabled.
- package.json has no preinstall/install/postinstall hook; only prepublishOnly for publisher-side build/test.
- dist/src/index.js is a barrel export and does not perform install-time or import-time mutation.
- Scanner reverse-shell and secret hits are synthetic test fixtures in dist/tests/edge-cases/EdgeCases.test.js and dist/tests/security/pii-detection.test.js.
- Dynamic require/import is limited to optional database drivers/WASM loading in dist/src/db/drivers/*.js.
- Agent config mutation is exposed through explicit installAgentPack API, records backups/manifests, and has uninstall/path guards.
Source & flagged code
40 flagged · loading sourcePackage contains a critical-looking secret pattern.
dist/tests/security/pii-detection.test.jsView on unpkg · L35GitHub personal access token in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L35AWS access key ID in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L40RSA private key in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L78AWS access key ID in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L112AWS access key ID in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L208Hardcoded password in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L86Hardcoded password in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L160Hardcoded password in dist/tests/security/pii-detection.test.js
dist/tests/security/pii-detection.test.jsView on unpkg · L167Package source references child process execution.
dist/src/db/drivers/sqljsDriver.jsView on unpkg · L178Package source references a known benign dynamic code generation pattern.
dist/src/telemetry/metric-helpers.jsView on unpkg · L11Package source references dynamic require/import behavior.
dist/src/db/drivers/betterSqlite3Driver.jsView on unpkg · L12Package source references weak cryptographic algorithms.
dist/src/scripts/github-import/deduplication.jsView on unpkg · L1Source matches reverse-shell style process and socket wiring.
dist/tests/edge-cases/EdgeCases.test.jsView on unpkg · L103Package source invokes a package manager install command at runtime.
dist/src/session/SessionManager.memory.jsView on unpkg · L6RSA private key in dist/src/scripts/github-import/github-auth.js
dist/src/scripts/github-import/github-auth.jsView on unpkg · L50Supabase service role key (JWT) in dist/src/api/utils.d.ts
dist/src/api/utils.d.tsView on unpkg · L53Supabase service role key (JWT) in dist/src/api/utils.js
dist/src/api/utils.jsView on unpkg · L101GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L13GitHub fine-grained PAT in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L19GitHub OAuth access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L24GitHub server-to-server token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L29GitHub user-to-server token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L34Stripe live secret key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L54AWS access key ID in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L91npm access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L111Supabase service role key (JWT) in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L130RSA private key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L174RSA private key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L182Stripe live secret key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L202GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L202GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L208GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L222Stripe live secret key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L233GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L243GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L251Stripe live secret key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L252GitHub personal access token in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L275Stripe test secret key in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L59Hardcoded password in dist/src/logging/redact.test.js
dist/src/logging/redact.test.jsView on unpkg · L143