AI Security Review
scanned 3h ago · by lpm-firewall-aiNo confirmed malicious attack surface was established. The package is a Slack adapter that stores user-provided config, connects to Slack, and calls Anthropic for summaries/replies during explicit setup/runtime use.
Decision evidence
public snapshot- package.json has postinstall deleting better-sqlite3 build dirs then running npm rebuild better-sqlite3
- dist/index.js runtime connects Slack Socket Mode and processes allowlisted Slack messages
- dist/setup.js validates user-entered Slack and Anthropic credentials over network
- postinstall is limited to better-sqlite3 rebuild paths under node_modules; no home/project agent control-surface writes
- dist/index.js child_process execSync only runs user-invoked --reset-config command: usrcp setup --adapter=slack
- dist/setup.js writes package config through config.js and requires interactive TTY/masterKey
- credential handling is setup/runtime aligned: Slack tokens and Anthropic key are user-entered, validated, then encrypted via usrcp-adapter-kit
- no eval/vm/remote code loading, persistence, destructive broad file operations, or exfiltration endpoint outside Slack/Anthropic flow found
Source & flagged code
6 flagged · loading sourceInstall-time lifecycle script matches a deterministic static-gate block pattern.
package.jsonView on unpkgPackage defines install-time lifecycle scripts.
package.jsonView on unpkgSource combines command execution, command-output handling, and outbound requests; review data flow before blocking.
dist/setup.jsView on unpkg · L46Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/setup.jsView on unpkg · L210Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
dist/setup.js#virtual:normalized:round1View on unpkg · L46