registry  /  @keystrokehq/cli  /  0.1.53

@keystrokehq/cli@0.1.53

⚠ Under review

Static Scan Results

scanned 4d ago · by rust-scanner

Static analysis flagged 17 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
ChildProcessCryptoDynamicRequireEnvironmentVarsEvalFilesystemNativeBindingsNetworkShell
Supply chain
HighEntropyStringsObfuscatedTelemetryUrlStrings
Manifest
NoLicense
scanned 127 file(s), 4.06 MB of source, external domains: 127.0.0.1, angular.io, api.keystroke.ai, cscott.net, datatracker.ietf.org, dom.spec.whatwg.org, empty.invalid, example.com, github.com, json-schema.org, keystroke.ai, landley.net, raw.githubusercontent.com, registry.npmjs.org, trac.webkit.org, www.ibm.com, www.w3.org, www.whatwg.org

Source & flagged code

6 flagged · loading source
dist/maybe-auto-update-BIYrfgSX.mjsView file
4import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; L5: import { spawnSync } from "node:child_process"; L6: //#region src/update/compare-version.ts
High
Child Process

Package source references child process execution.

dist/maybe-auto-update-BIYrfgSX.mjsView on unpkg · L4
dist/dist-B4IgTkp3.mjsView file
141try { L142: new Function(""); L143: return true;
Low
Eval

Package source references a known benign dynamic code generation pattern.

dist/dist-B4IgTkp3.mjsView on unpkg · L141
dist/lzma-CTMDi254.mjsView file
347const __dirname = path.dirname(__filename); L348: const require = createRequire(import.meta.url); L349: const bindingPath = path.resolve(path.join(__dirname, ".."));
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist/lzma-CTMDi254.mjsView on unpkg · L347
dist/dist-CrDC9sEI.mjsView file
matchType = previous_version_dangerous_delta matchedPackage = @keystrokehq/cli@0.1.24 matchedIdentity = npm:QGtleXN0cm9rZWhxL2NsaQ:0.1.24 similarity = 0.950 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/dist-CrDC9sEI.mjsView on unpkg
333} L334: return process.env.KEYSTROKE_ROOT ?? process.cwd(); L335: } ... L1261: nodeType, L1262: data: { L1263: label, ... L2176: { L2177: name: "base64", L2178: load: async () => (await import("./base64-C2AIWVNC-C0WIgu5V.mjs")).base64Command ... L2295: Object.freeze({ L2296: stdout: "", L2297: stderr: "",
Medium
Install Persistence

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

dist/dist-CrDC9sEI.mjsView on unpkg · L333
dist/js-exec-N5KEZBH7-CgtG-I6s.mjsView file
48Cross-file remote execution chain: dist/js-exec-N5KEZBH7-CgtG-I6s.mjs spawns dist/chunk-TN7HHBQW-CSB_R-XD.mjs; helper contains network access plus dynamic code execution. L48: Available modules: L49: fs, path, child_process, process, console, L50: os, url, assert, util, events, buffer, stream, ... L63: child_process: L64: execSync(cmd) throws on non-zero exit, returns stdout L65: spawnSync(cmd, args) returns { stdout, stderr, status } ... L69: L70: os: platform(), arch(), homedir(), tmpdir(), type(), hostname(), L71: EOL, cpus(), endianness() L72: L73: url: URL, URLSearchParams, parse(), format() L74:
High
Cross File Remote Execution Context

Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.

dist/js-exec-N5KEZBH7-CgtG-I6s.mjsView on unpkg · L48

Findings

1 Critical3 High5 Medium8 Low
CriticalPrevious Version Dangerous Deltadist/dist-CrDC9sEI.mjs
HighChild Processdist/maybe-auto-update-BIYrfgSX.mjs
HighShell
HighCross File Remote Execution Contextdist/js-exec-N5KEZBH7-CgtG-I6s.mjs
MediumDynamic Requiredist/lzma-CTMDi254.mjs
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencedist/dist-CrDC9sEI.mjs
MediumStructural Risk Force Deep Review
LowScripts Present
LowEvaldist/dist-B4IgTkp3.mjs
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowTelemetry
LowUrl Strings
LowNo License