registry  /  jinzd-ai-cli  /  0.4.215

jinzd-ai-cli@0.4.215

Cross-platform REPL-style AI CLI with multi-provider support

Static Scan Results

scanned 3h ago · by rust-scanner

Static analysis flagged 18 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
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShellWebSocket
Supply chain
HighEntropyStringsMinifiedObfuscatedUrlStrings
ManifestNo manifest risk signals triggered.
scanned 77 file(s), 2.64 MB of source, external domains: 127.0.0.1, ai.dev, api.deepseek.com, api.minimaxi.com, api.moonshot.ai, api.openai.com, cn.bing.com, console.cloud.google.com, github.com, mths.be, ollama.com, open.bigmodel.cn, openrouter.ai, programmablesearchengine.google.com, registry.npmjs.org, tailwindcss.com, twitter.com, www.googleapis.com

Source & flagged code

9 flagged · loading source
dist/web/client/vendor/highlight.min.jsView file
132;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|" L133: }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex L134: ;const n=this.matcherRe.exec(e);if(!n)return null
High
Child Process

Package source references child process execution.

dist/web/client/vendor/highlight.min.jsView on unpkg · L132
dist/electron-server.jsView file
725if (/\bSet-Content\b|\bOut-File\b|\bAdd-Content\b|\bCopy-Item\b|\bMove-Item\b|\bSet-ItemProperty\b|\bNew-ItemProperty\b/i.test(cmd)) return "write"; L726: if (/\b(python3?|node|deno|bun|perl|ruby|php|bash|sh|zsh|pwsh|powershell)(\.exe)?\b[^\n]*?\s-(?:Command|EncodedCommand|c|e|p|r)\b/i.test(cmd)) return "write"; L727: if (/\bcmd(\.exe)?\s+\/[ck]\b/i.test(cmd)) return "write";
High
Shell

Package source references shell execution.

dist/electron-server.jsView on unpkg · L725
86// 可选:直接在此写 key(也可通过 apiKeys 字段或环境变量提供) L87: baseUrl: z.string(), L88: // OpenAI 兼容 API 的 base URL(必填) ... L498: try { L499: const raw = JSON.parse(readFileSync(this.configPath, "utf-8")); L500: return ConfigSchema.parse(raw); ... L4796: // src/tools/builtin/bash.ts L4797: import { spawn } from "child_process"; L4798: import { existsSync as existsSync4, readdirSync as readdirSync2, statSync } from "fs";
High
Remote Agent Bridge

Source exposes local file and command tools to a remote model endpoint.

dist/electron-server.jsView on unpkg · L86
61Detached bundled service listener: dist/electron-server.js launches a Node helper and exposes a broad-bound HTTP listener. L61: import express from "express"; L62: import { createServer } from "http"; L63: import { WebSocketServer } from "ws"; ... L247: denyPorts: z.array(z.number().int().min(1).max(65535)).default([]), L248: allowPrivateNetwork: z.boolean().default(false), L249: tools: z.object({ ... L400: if (fixedEnvVar && fixedEnvVar !== dynamicEnvVar) { L401: const fixedVal = process.env[fixedEnvVar]; L402: const dynVal = process.env[dynamicEnvVar]; L403: if (fixedVal && dynVal && fixedVal !== dynVal) { L404: process.stderr.write(`[warn] env var collision: ${fixedEnvVar} and ${dynamicEnvVar} have different values for provider "${providerId}". Using ${fixedEnvVar}. L405: `);
High
Spawned Bundled Service Listener

Source launches a detached bundled service that exposes a broad-bound HTTP listener.

dist/electron-server.jsView on unpkg · L61
61import express from "express"; L62: import { createServer } from "http"; L63: import { WebSocketServer } from "ws"; ... L247: denyPorts: z.array(z.number().int().min(1).max(65535)).default([]), L248: allowPrivateNetwork: z.boolean().default(false), L249: tools: z.object({ ... L400: if (fixedEnvVar && fixedEnvVar !== dynamicEnvVar) { L401: const fixedVal = process.env[fixedEnvVar]; L402: const dynVal = process.env[dynamicEnvVar]; L403: if (fixedVal && dynVal && fixedVal !== dynVal) { L404: process.stderr.write(`[warn] env var collision: ${fixedEnvVar} and ${dynamicEnvVar} have different values for provider "${providerId}". Using ${fixedEnvVar}. L405: `);
Medium
Install Persistence

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

dist/electron-server.jsView on unpkg · L61
dist/web/client/vendor/tailwind.jsView file
1(()=>{var qv=Object.create;var Hi=Object.defineProperty;var $v=Object.getOwnPropertyDescriptor;var Lv=Object.getOwnPropertyNames;var Mv=Object.getPrototypeOf,Nv=Object.prototype.ha... L2: `+S+n("^")}let b=i(h.replace(/\d/g," "))+f.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+i(h)+s(f)+`
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist/web/client/vendor/tailwind.jsView on unpkg · L1
dist/chunk-CKH4KQ4E.jsView file
52function indexDir() { L53: return path.join(os.homedir(), ".aicli", INDEX_DIR_NAME); L54: } ... L66: const raw = fs.readFileSync(p, "utf-8"); L67: const parsed = JSON.parse(raw); L68: if (parsed.version !== SYMBOL_INDEX_VERSION) return null;
Low
Weak Crypto

Package source references weak cryptographic algorithms.

dist/chunk-CKH4KQ4E.jsView on unpkg · L52
dist/chunk-KL7UBVSQ.jsView file
854package = jinzd-ai-cli; repositoryIdentity = ai-cli; dependency = undici L854: try { L855: const { ProxyAgent, setGlobalDispatcher } = await import("undici"); L856: setGlobalDispatcher(new ProxyAgent({ uri: proxyUrl }));
High
Copied Package Dependency Bridge

Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.

dist/chunk-KL7UBVSQ.jsView on unpkg · L854
dist/wasm/tree-sitter-go.wasmView file
path = dist/wasm/tree-sitter-go.wasm kind = wasm_module sizeBytes = 217182 magicHex = [redacted]
Medium
Ships Wasm Module

Package ships WebAssembly modules.

dist/wasm/tree-sitter-go.wasmView on unpkg

Findings

5 High6 Medium7 Low
HighChild Processdist/web/client/vendor/highlight.min.js
HighShelldist/electron-server.js
HighRemote Agent Bridgedist/electron-server.js
HighCopied Package Dependency Bridgedist/chunk-KL7UBVSQ.js
HighSpawned Bundled Service Listenerdist/electron-server.js
MediumDynamic Requiredist/web/client/vendor/tailwind.js
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencedist/electron-server.js
MediumShips Wasm Moduledist/wasm/tree-sitter-go.wasm
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowWeak Cryptodist/chunk-CKH4KQ4E.js
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowUrl Strings