registry  /  visionclaw  /  0.1.204

visionclaw@0.1.204

⚠ Under review

A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.

Static Scan Results

scanned 2h ago · by rust-scanner

Static analysis flagged 21 finding(s) at 93.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.; previous stored version diff introduced dangerous source

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShellWebSocket
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 351 file(s), 3.45 MB of source, external domains: 0.0.0.0, 127.0.0.1, 9r.gru.ai, accounts.google.com, admin.googleapis.com, api.anthropic.com, api.openai.com, api.telegram.org, avatars.githubusercontent.com, bot.sannysoft.com, bots.qq.com, chocolatey.org, clients2.google.com, cloudflare-dns.com, console.cloud.google.com, discord.com, drive.google.com, feross.org, files.catbox.moe, financial-tool.visionclaw.dev, github.com, huggingface.co, ilinkai.weixin.qq.com, jimmy.warting.se, licensing.googleapis.com, mcp.serpapi.com, novac2c.cdn.weixin.qq.com, onboarding.visionclaw.dev, r.jina.ai, registry.npmjs.org, screenshots.tos-accelerate.volces.com, serpapi.com, serpapi.visionclaw.workers.dev, sms.visionclaw.dev, t.me, telegram.org, unpkg.com, visionclaw.dev, www.apache.org, www.apple.com, www.google.com, www.googleapis.com
Oversized source lightweight scan
dist-agent/bundle.cjs55.4 MB file, sampled 256 KB
FilesystemNetworkChildProcessEnvironmentVarsCryptoHighEntropyStringsUrlStrings127.0.0.1feross.orggithub.comjimmy.warting.setelegram.orgwww.apache.org

Source & flagged code

14 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/setup-openclaw-shim.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
dist-agent/playwriter-relay.cjsView file
5var import_node_fs = require("node:fs"); L6: var import_node_child_process = require("node:child_process"); L7: var import_node_os = require("node:os");
High
Child Process

Package source references child process execution.

dist-agent/playwriter-relay.cjsView on unpkg · L5
3// dist/entry/playwriter-relay.js L4: var import_playwriter = require("playwriter"); L5: var import_node_fs = require("node:fs");
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist-agent/playwriter-relay.cjsView on unpkg · L3
dist/tools/upgrade.jsView file
11import { writePendingUpgrade } from "../config/index.js"; L12: const execAsync = promisify(exec); L13: const execFileAsync = promisify(execFile);
High
Shell

Package source references shell execution.

dist/tools/upgrade.jsView on unpkg · L11
dist/realtime/websocket.jsView file
1import { createHash } from "node:crypto"; L2: // ── WebSocket Upgrade (RFC 6455 bare-minimum) ──────────────────────────────── L3: export function wsAcceptKey(clientKey) { ... L5: .update(clientKey + "258EAFA5-E914-47DA-95CA-5AB53F11CE85") L6: .digest("base64"); L7: } ... L58: } L59: return { data: payload.toString("utf-8"), bytesConsumed: offset + payloadLen }; L60: }
Low
Weak Crypto

Package source references weak cryptographic algorithms.

dist/realtime/websocket.jsView on unpkg · L1
dist/reset.jsView file
1import fs from "node:fs"; L2: import { spawnSync } from "node:child_process"; L3: import os from "node:os"; ... L107: }); L108: if (listResult.status !== 0 || !listResult.stdout) { L109: return false; ... L111: try { L112: const entries = JSON.parse(listResult.stdout); L113: return entries.some((entry) => entry.name === "visionclaw" && entry.pm2_env?.status !== "stopped"); ... L127: function removeAllCronEntries() { L128: const listResult = spawnSync("crontab", ["-l"], { L129: encoding: "utf-8",
Medium
Install Persistence

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

dist/reset.jsView on unpkg · L1
dist/tools/android-executor.jsView file
19// data. All other adb calls in this file go through `execWithTimeout`. L20: const execAsyncBuffer = promisify(exec); L21: const MAX_SCREENSHOT_SIZE = 1 * 1024 * 1024; // 1 MB ... L25: const ADB_KEYBOARD_DOWNLOAD_URLS = [ L26: "https://github.[redacted].4-dev/keyboardservice-debug.apk", L27: "https://github.[redacted].apk", ... L29: const ADB_KEYBOARD_LOCAL_APK_CANDIDATES = [ L30: process.env.ADBKEYBOARD_APK_PATH, L31: path.join(process.cwd(), "ADBKeyboard.apk"),
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

dist/tools/android-executor.jsView on unpkg · L19
dist/data-processing/batch-process.jsView file
87const sinceArg = options.since ? ` --since ${options.since}` : ""; L88: execSync(`npx tsx "${options.cliEntry}" process-data "${dataDir}" --samples${sinceArg}`, { cwd: options.projectRoot, stdio: "inherit" }); L89: // Stage 2: Generate system-prompt.md if needed
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

dist/data-processing/batch-process.jsView on unpkg · L87
dist/builtin-skills/catalog/phone-adb-automation/phone_launch.shView file
path = dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh kind = build_helper sizeBytes = 5766 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

dist/builtin-skills/catalog/phone-adb-automation/phone_launch.shView on unpkg
dist-agent/realtime/assets/samples/coral.mp3View file
path = dist-[redacted].mp3 kind = high_entropy_blob sizeBytes = 112128 magicHex = [redacted]
High
Ships High Entropy Blob

Package ships high-entropy non-source blobs.

dist-agent/realtime/assets/samples/coral.mp3View on unpkg
dist-agent/bundle.cjsView file
path = dist-agent/bundle.cjs kind = oversized_source_file sizeBytes = 58131995 magicHex = [redacted]
High
Oversized Source File

Package contains source files above the static scanner size ceiling.

dist-agent/bundle.cjsView on unpkg
path = dist-agent/bundle.cjs kind = oversized_cli_entrypoint sizeBytes = 58131995 magicHex = [redacted]
Medium
Oversized Cli Entrypoint

Package contains an oversized executable-looking CLI entrypoint.

dist-agent/bundle.cjsView on unpkg
dist/onboarding/setup-shared.jsView file
matchType = previous_version_dangerous_delta matchedPackage = visionclaw@0.1.202 matchedIdentity = npm:dmlzaW9uY2xhdw:0.1.202 similarity = 0.842 summary = stored previous version shares package body but lacks this dangerous source file
Critical
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

dist/onboarding/setup-shared.jsView on unpkg
dist/builtin-skills/catalog/futu-stock-trading/SKILL.mdView file
53patternName = generic_password severity = medium line = 53 matchedText = trade_ct...IN')
Medium
Secret Pattern

Hardcoded password in dist/builtin-skills/catalog/futu-stock-trading/SKILL.md

dist/builtin-skills/catalog/futu-stock-trading/SKILL.mdView on unpkg · L53

Findings

1 Critical7 High8 Medium5 Low
CriticalPrevious Version Dangerous Deltadist/onboarding/setup-shared.js
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processdist-agent/playwriter-relay.cjs
HighShelldist/tools/upgrade.js
HighSame File Env Network Executiondist/tools/android-executor.js
HighRuntime Package Installdist/data-processing/batch-process.js
HighShips High Entropy Blobdist-agent/realtime/assets/samples/coral.mp3
HighOversized Source Filedist-agent/bundle.cjs
MediumDynamic Requiredist-agent/playwriter-relay.cjs
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencedist/reset.js
MediumShips Build Helperdist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh
MediumOversized Cli Entrypointdist-agent/bundle.cjs
MediumStructural Risk Force Deep Review
MediumSecret Patterndist/builtin-skills/catalog/futu-stock-trading/SKILL.md
LowScripts Present
LowWeak Cryptodist/realtime/websocket.js
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings