live · scanning repos
Scanrepo
github.com
github.com / decolua

decolua/9router

JavaScript·1570 files·commit 17c4cc7·scanned 3d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 1529,106+ stars — findings likely false positives

verdict accurate?
29,106 stars
Crypto/Web3 project
Partial architecture graph
CLI tool detected
threat-state: lowlive

FINDINGS ░▒▓

criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.cli/src/cli/tray/trayWin.js
const { spawn } = require("child_process");
const path = require("path");
const readline = require("readline");
+8
criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.scripts/injectDisplayToRegistry.mjs
// eslint-disable-next-line no-new-func
const getDisplay = new Function("RISK_NOTICE", `${displayBody}; return PROVIDER_DISPLAY;`);
const DISPLAY = getDisplay(RISK_NOTICE);
+5
criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.src/mitm/dns/dnsConfig.js
const { exec, spawn, execSync } = require("child_process");
const fs = require("fs");
const path = require("path");
+8
criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.src/mitm/winElevated.js
const { exec, execSync } = require("child_process");

const IS_WIN = process.platform === "win32";
+8
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.open-sse/handlers/imageGenerationCore.js
        if (b64) {
          const buf = Buffer.from(b64, "base64");
          const fmt = (body.output_format || "png").toLowerCase();
          const mime = fmt === "jpeg" || fmt === "jpg" ? "image/...
+2
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.open-sse/handlers/ttsCore.js
function createTtsResponse(base64Audio, format, responseFormat) {
  const audioBuffer = Buffer.from(base64Audio, "base64");

  // JSON format: return base64 encoded audio
+2
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.open-sse/handlers/ttsProviders/gemini.js
    }
    const wav = pcmToWav(Buffer.from(b64, "base64"));
    return { base64: wav.toString("base64"), format: "wav" };
  },
+2
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.src/mitm/cert/install.js
    
    if [ -d "$HOME/.mozilla/firefox" ]; then
      for profile in "$HOME"/.mozilla/firefox/*/; do
        if [ -f "\${profile}cert9.db" ] || [ -f "\${profile}cert8.db" ]; then
+10
warningSeed phrase / private key harvesting UICollects seed phrase, private key, or mnemonic from the user via input/textarea/clipboard/prompt. Wallet drainers and fake wallet apps use this to steal funds.src/shared/components/OAuthModal.js
    // 3. Register the session so the proxy can match the incoming callback.
    //    Zed also passes code_verifier (encodes the RSA private key for decrypt);
    //    sent via POST body so the priv...
+5
warningSeed phrase / private key harvesting UICollects seed phrase, private key, or mnemonic from the user via input/textarea/clipboard/prompt. Wallet drainers and fake wallet apps use this to steal funds.open-sse/services/tokenRefresh.js
    log?.debug?.("TOKEN_REFRESH", `Vertex minting token for ${saJson.client_email}`);
    const privateKey = await importPKCS8(saJson.private_key.replace(/\\n/g, "\n"), "RS256");
    const now = Math....
+5
criticalSecret collection in crypto contextCollects seed phrases, private keys, or clipboard content while also targeting browser wallets. This is a wallet-stealer pattern.+10
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.open-sse/config/defaultThinkingSignature.js+4
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.open-sse/handlers/fetch/index.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.open-sse/handlers/search/index.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.open-sse/translator/index.js+3
warningHigh-entropy string literalsFound 42 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js+3
warningHigh-entropy string literalsFound 15 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/lib/db/index.js+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/mitm/server.js+3
warningLarge base64-encoded blobA 288-character base64 blob was found. May hide a remote payload or encoded executable code.cli/src/cli/tray/tray.js
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGP...
+3
warningLarge base64-encoded blobA 1672-character base64 blob was found. May hide a remote payload or encoded executable code.open-sse/config/defaultThinkingSignature.js
CloBjz1rX5+yg1ILh/Ag+suum5k1f/9m/hI0XDQ33lsQIYnOHLn9KZwN0C7E...
+3
warningLarge base64-encoded blobA 96-character base64 blob was found. May hide a remote payload or encoded executable code.tests/translator/real/all-formats.real.test.js
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk...
+3
infoSuspicious file in repoExecutable file (tray.ps1) in repositorycli/src/cli/tray/tray.ps1+2
warningPossible typosquat: enquirer"enquirer" is only 1 character(s) away from the popular package "inquirer". This is a common supply-chain attack vector.package.json+4
warningDependency runs install scripts"<root>/postinstall" executes code during installation. Malicious packages use this to drop payloads before the app even runs.package.json+3
infoAuthor has no other public repositoriesGitHub user "wismyzhzi" has no other public repositories, common for burner accounts used in scams.+2
warningHardcoded secret/credentialAPI keys, passwords, or tokens hardcoded in source code. Should be in environment variables.open-sse/providers/registry/antigravity.js
    clientId: "1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",
    clientSecret: "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",
  },
  models: [
+3
warningHardcoded secret/credentialAPI keys, passwords, or tokens hardcoded in source code. Should be in environment variables.open-sse/providers/registry/cursor.js
    dbKeys: {
      accessToken: "cursorAuth/accessToken",
      machineId: "storage.serviceMachineId",
    },
+3
warningHardcoded secret/credentialAPI keys, passwords, or tokens hardcoded in source code. Should be in environment variables.open-sse/providers/registry/gemini-cli.js
    clientId: "681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",
    clientSecret: "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",
  },
  models: [
+3

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

1252 files scanned @ 17c4cc7 | 9/17/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration8
file system access20
obfuscation15
supply chain11
owasp / injection15
telemetry
files 1252/1570rules hit 29engine v5commit 17c4cc7

github

decolua/9router

Unlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40+ providers. Auto-fallback, RTK -40% tokens, never hit limits.

JavaScript
29106
5366
259d
1570 files
1252 scanned(80%)
17c4cc7

architecture░▒▓

entry (3) flagged (260) pkg (185)
585 nodes · 1357 edgesscroll to zoom · click node to jump to finding