AI Security Review
scanned 47m ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. No malicious install-time behavior was confirmed. The remaining risk is first-party agent lifecycle setup that mutates Claude agent config, trust state, skills, and optional permission mode only through user-invoked commands.
Decision evidence
public snapshot- dist/cli/switchroom.js scaffolds agent Claude config and sets hasTrustDialogAccepted/enabledMcpjsonServers during explicit setup/apply.
- dist/cli/switchroom.js can write personal skills under agent .claude/skills via explicit skill commands.
- dist/cli/switchroom.js has an optional setup path that writes dangerous_mode to switchroom.yaml after prompt/env opt-in.
- dist/host-control/main.js initializes PostHog telemetry to https://us.i.posthog.com unless disabled.
- package.json has no preinstall/install/postinstall hook; only prepublishOnly for maintainer build/lint/test.
- dist/cli/switchroom.js crypto/decrypt logic is a local vault feature, not an embedded payload execution chain.
- telegram-plugin/start.js only imports bundled dist/server.js or local server.ts fallback.
- telegram-plugin/shared/bot-runtime.ts uses execFileSync/spawnSync argv arrays to call switchroom CLI, not shell eval.
- vendor/hindsight-memory/tests/conftest.py is a pytest fixture, not an executable payload.
- No bidi/default-ignorable characters found in telegram-plugin/shared/bot-runtime.ts by source inspection.
Source & flagged code
14 flagged · loading sourcePackage source references child process execution.
dist/host-control/main.jsView on unpkg · L10429Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.
dist/host-control/main.jsView on unpkg · L2457Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
dist/host-control/main.jsView on unpkg · L2457Package source references a known benign dynamic code generation pattern.
telegram-plugin/dist/server.jsView on unpkg · L12703Package source references dynamic require/import behavior.
telegram-plugin/start.jsView on unpkg · L25Source contains bidi control or invisible Unicode characters associated with Trojan Source attacks.
telegram-plugin/shared/bot-runtime.tsView on unpkg · L175Package source references weak cryptographic algorithms.
telegram-plugin/shared/bot-runtime.tsView on unpkg · L8Source decrypts an embedded payload, writes it to disk, and executes it through a child process.
dist/cli/switchroom.jsView on unpkgPackage contains source files above the static scanner size ceiling.
dist/cli/switchroom.jsView on unpkgPackage contains an oversized executable-looking CLI entrypoint.
dist/cli/switchroom.jsView on unpkgPackage ships non-JavaScript build or shell helper files.
bin/turn-pacing-hook.shView on unpkgPackage hides binary, compressed, or executable-looking payloads in test/fixture/hidden paths.
vendor/hindsight-memory/tests/conftest.pyView on unpkgRSA private key in telegram-plugin/tests/secret-detect.test.ts
telegram-plugin/tests/secret-detect.test.tsView on unpkg · L198