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 15 — 29,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");+8criticalFunction() 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);
+5criticalchild_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");+8criticalchild_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";+8infoBase64 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/...+2infoBase64 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+2infoBase64 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" };
},+2criticalBrowser 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+10warningSeed 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...+5warningSeed 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....+5warningExtremely 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
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: [+3warningHardcoded 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",
},+3warningHardcoded 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: [+3Scores 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.
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