live · scanning repos
Scanrepo
github.com
DANGER
malware detected
github.com / giienew

giienew/9router-pro

JavaScript·2065 files·commit 88c7848·scanned 4h ago·cached ✓
100/100
MALICIOUS
Matches known-malicious patterns. Do not clone or install.

This repository contains patterns associated with malware. Do NOT run this code.

verdict accurate?
Created 10 days ago
Created 10 days ago
Partial architecture graph
CLI tool detected
threat-state: maliciouslive

FINDINGS ░▒▓

what this code does░▒▓

What happens when you open, install or run it, from the findings below.

  1. when runsrc/mitm/cert/install.js and 2 other files reference browser profile paths, where saved logins and cookies live. src/mitm/cert/install.js, open-sse/executors/browserExecutableCheck.js, open-sse/executors/chatgpt-web/adapter.js
  2. when runcli/src/cli/tray/trayWin.js and 2 other files start system processes. cli/src/cli/tray/trayWin.js, src/mitm/dns/dnsConfig.js, src/mitm/winElevated.js
  3. when runscripts/injectDisplayToRegistry.mjs builds code from strings at run time with new Function. scripts/injectDisplayToRegistry.mjs
  4. when runopen-sse/shared/awsCredentials.js references SSH key or cloud credential paths (such as ~/.ssh or ~/.aws/credentials). open-sse/shared/awsCredentials.js
  5. when runsrc/shared/components/OAuthModal.js and open-sse/services/tokenRefresh.js have a form field for a private key or seed phrase. src/shared/components/OAuthModal.js, open-sse/services/tokenRefresh.js
  6. when runsrc/app/(dashboard)/dashboard/cli-tools/components/GenericCliToolCard.js and 2 other files download a script from pi.dev and raw.githubusercontent.com and pipe it to the shell. src/app/(dashboard)/dashboard/cli-tools/components/GenericCliToolCard.js:278, src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js:408, src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js:255
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
warningDownload piped into a shellA command downloads remote content and pipes it straight into a shell or interpreter (`curl … | bash`, `iwr … | iex`). Nothing is stored for review and the server can change the payload at any time. Common in CI and Dockerfiles, so this is a warning unless the host is hidden.src/app/(dashboard)/dashboard/cli-tools/components/GenericCliToolCard.js
curl -fsSL https://pi.dev/install.sh | sh  # or: npm install -g --ignore-scripts @earendil-works/pi-coding-agent
+4
warningDownload piped into a shellA command downloads remote content and pipes it straight into a shell or interpreter (`curl … | bash`, `iwr … | iex`). Nothing is stored for review and the server can change the payload at any time. Common in CI and Dockerfiles, so this is a warning unless the host is hidden.src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash</p>
+4
warningDownload piped into a shellA command downloads remote content and pipes it straight into a shell or interpreter (`curl … | bash`, `iwr … | iex`). Nothing is stored for review and the server can change the payload at any time. Common in CI and Dockerfiles, so this is a warning unless the host is hidden.src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash
+4
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
criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.tests/unit/netlify-relay.test.js
      const sandboxExports = {};
      new Function("exports", "fetch", "Buffer", net.NETLIFY_RELAY_FUNCTION_CODE)(
        sandboxExports, fakeFetch, Buffer
      );
+5
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.src/lib/network/netlifyRelay.js
        ? event.isBase64Encoded
          ? Buffer.from(event.body, "base64")
          : event.body
        : undefined,
+2
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.open-sse/executors/uc-web.js
  const dataMatch = /^data:[^;]*;base64,(.*)$/.exec(String(ref));
  if (dataMatch) return Buffer.from(dataMatch[1], "base64");
  if (/^https?:\/\//i.test(String(ref))) {
    const res = await fetch(re...
+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
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)
    //    + systemId; sent via POST body ...
+5
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.open-sse/executors/browserExecutableCheck.js
    ...(env["PROGRAMFILES(X86)"] ? [join(env["PROGRAMFILES(X86)"], "Google", "Chrome", "Application", "chrome.exe")] : []),
    ...(env.LOCALAPPDATA ? [join(env.LOCALAPPDATA, "Google", "Chrome", "Appl...
+10
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.open-sse/executors/chatgpt-web/adapter.js
    ...(env.LOCALAPPDATA
      ? [join(env.LOCALAPPDATA, "Google", "Chrome", "Application", "chrome.exe")]
      : []),
  ];
+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.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
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.open-sse/shared/awsCredentials.js
      `Invalid AWS profile name ${JSON.stringify(profile)}. Use the profile's name as it ` +
        "appears in ~/.aws/config or ~/.aws/credentials: letters, digits, spaces and " +
        "_ - @ + ....
+5
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.open-sse/executors/chatgpt-web/imageGen.js+4
infoEmbedded binary assetA 288-character base64 literal decodes to a PNG image. Inlined assets are normal in desktop and CLI UIs.cli/src/cli/tray/tray.js
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGP...
+0
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.open-sse/config/defaultThinkingSignature.js+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
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.open-sse/providers/shared.js+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
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.

1714 files scanned @ 88c7848 | 10/30/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration12
file system access20
obfuscation13
supply chain9
owasp / injection15
telemetry
files 1714/2065rules hit 29engine v10commit 88c7848

github

giienew/9router-pro

9Router Pro by Gienetic — Pro edition of 9Router with Prompt Injection (system prompt or chat script per global / API key / model), per-key token quotas, accent themes and an optimized dashboard.

JavaScript
42
13
10d
2065 files
1714 scanned(83%)
88c7848

network indicators░▒▓

Hosts this code names or would connect to. Top 50 of 902, decoded and call-site destinations first. Informational, not scored.

architecture░▒▓

entry (3) flagged (27) pkg (216)
616 nodes · 1266 edgesscroll to zoom · click node to jump to finding
⚠️ MALICIOUS (100/100) — giienew/9router-pro — ScanRepo