registry  /  create-claude-cabinet  /  0.47.0

create-claude-cabinet@0.47.0

Claude Cabinet — opinionated process scaffolding for Claude Code projects

Static Scan Results

scanned 10d ago · by rust-scanner

Static analysis flagged 15 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 116 file(s), 1.32 MB of source, external domains: a.com, b.com, evil.com, example.com, schema.org, secure.example.com, www.apple.com, x.com

Source & flagged code

7 flagged · loading source
lib/db-setup.jsView file
1const { execSync } = require('child_process'); L2: const fs = require('fs');
High
Child Process

Package source references child process execution.

lib/db-setup.jsView on unpkg · L1
111log(' Installing better-sqlite3...'); L112: exec('npm install better-sqlite3', { cwd: projectDir, stdio: 'pipe' }); L113: results.push('Installed better-sqlite3');
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

lib/db-setup.jsView on unpkg · L111
templates/engagement/secure-input.mjsView file
108L109: async function captureViaPowerShell(prompt) { L110: const escaped = prompt.replace(/'/g, "''");
High
Shell

Package source references shell execution.

templates/engagement/secure-input.mjsView on unpkg · L108
bin/create-claude-cabinet.jsView file
2L3: const { run } = require('../lib/cli'); L4:
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/create-claude-cabinet.jsView on unpkg · L2
lib/mux-setup.jsView file
23L24: const CC_HOME = path.join(os.homedir(), '.claude-cabinet'); L25: const GLOBAL_MANIFEST_PATH = path.join(CC_HOME, 'global-manifest.json'); ... L86: try { L87: const m = JSON.parse(fs.readFileSync(GLOBAL_MANIFEST_PATH, 'utf8')); L88: // Guard shape drift: manifest.files is indexed unconditionally below. ... L127: L128: const ccVersion = require('../package.json').version; L129: const templateDir = TEMPLATE_DIR; ... L206: L207: if (process.platform === 'darwin') { L208: setupDarwinIntegration({ dryRun, results });
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

lib/mux-setup.jsView on unpkg · L23
templates/mux/config/mux-server.pyView file
path = templates/mux/config/mux-server.py kind = build_helper sizeBytes = 11142 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

templates/mux/config/mux-server.pyView on unpkg
templates/mux/__tests__/mux-fail-loud.fixture.shView file
path = templates/mux/__tests__/mux-fail-loud.fixture.sh kind = payload_in_excluded_dir sizeBytes = 14274 magicHex = [redacted]
High
Payload In Excluded Dir

Package hides binary, compressed, or executable-looking payloads in test/fixture/hidden paths.

templates/mux/__tests__/mux-fail-loud.fixture.shView on unpkg

Findings

4 High6 Medium5 Low
HighChild Processlib/db-setup.js
HighShelltemplates/engagement/secure-input.mjs
HighRuntime Package Installlib/db-setup.js
HighPayload In Excluded Dirtemplates/mux/__tests__/mux-fail-loud.fixture.sh
MediumDynamic Requirebin/create-claude-cabinet.js
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencelib/mux-setup.js
MediumShips Build Helpertemplates/mux/config/mux-server.py
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings