github.com / ruvnet
ruvnet/ ruflo
TypeScript·8265 files·commit 89b0cd0·scanned 19h ago·cached ✓
?/100
INCONCLUSIVE
Scan coverage was too low to trust this verdict — treat the score as inconclusive and rescan.
score capped at 15 — 79,973+ stars — findings likely false positives
verdict accurate?
Incomplete scan
Obfuscated code detected
79,973 stars
Crypto/Web3 project
Partial architecture graph
CLI tool detected
threat-state: lowlive
FINDINGS ░▒▓
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.plugins/ruflo-workflows/scripts/fixtures/gaia-audit/planted-repo/v3/@claude-flow/cli/src/benchmarks/gaia-evil-runner.ts
// FLAG: eval of task-derivable content. const result = eval(taskContent); // FLAG: exec-family call with an interpolated (task-derivable) command.+8
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.plugins/ruflo-workflows/scripts/gaia-audit.test.mjs
// ── AUD-9 dynamic-eval (static runner-source scan) ───────────────────────── test('dynamic-eval: planted runner flags eval + interpolated exec only', () => { const c = checkDynamicEval({ runnerSo...+8
criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.scripts/bench-managed-workflows.mjs
const original = baselineSource.slice(baselineSource.indexOf('function summarizeEvents('), baselineSource.indexOf('async function fetchSessionEvents('));
const summarize = new Function(`${stripTypeScr...+5criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.scripts/install.sh
# Usage: # curl -fsSL https://cdn.jsdelivr.net/gh/ruvnet/claude-flow@main/scripts/install.sh | bash # curl -fsSL https://cdn.jsdelivr.net/gh/ruvnet/claude-flow@main/scripts/install.sh | bash -s --...+10
infoWallet transaction signing APIUses wallet signing APIs (signTransaction, signMessage, sendTransaction, etc.). Legitimate in DeFi apps, but combined with remote exfiltration it is the core drainer pattern.plugins/ruflo-core/scripts/test-consensus-transport.mjs
const msg = { type: 'commit', from: 'a', to: 'b', payload: { digest: 'abc123' }, seq: 1 };
const sig = signMessage(msg, kpA.privateKeyPem);
const okRight = verifyMessage({ ...msg, signature: sig...+2warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.plugins/ruflo-x-gateway/src/github-query.mjs
/^\.env(?:\..*)?$/i, /^\.envrc$/i, /^\.npmrc$/i, /^\.netrc$/i, /^\.pypirc$/i, /^\.git$/i, /^\.ssh$/i, /^\.aws$/i, /^\.gnupg$/i, /^\.kube$/i, /^id_(?:rsa|dsa|ecdsa|ed25519)(?:\..*)?$/i, /^crede...+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.plugins/ruflo-business-pods/hooks/guard.ts
// Where credentials live: a pod template path has no business pointing at any of these. const SENSITIVE = /(?:^|[\\/])(?:\.env(?:\.[^\\/]*)?|\.ssh|\.aws|\.gnupg|\.netrc|\.npmrc|id_(?:rsa|ed25519|ecds...+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.plugins/ruflo-business-pods/tests/register.test.ts
expect(await route('../../etc/shadow.json')).toContain('..')
expect(await route('/home/u/.ssh/id_rsa')).toContain('credentials')
expect(await route('/home/u/.aws/credentials.json')).toCont...+5warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.plugins/ruflo-ai-team/src/public-pages.mjs+4
criticalString-array obfuscation detectedCode resolves its string literals through a rotating string-array decoder — many `name(0xNNN)` index calls that reconstruct hidden strings at runtime. This is the structural signature of javascript-obfuscator regardless of the variable-naming scheme, so it fires even when mangled identifiers (e.g. `j5`, `jM`) are used to evade _0x-based detection. Commonly used to hide malware from code review.scripts/lib/guard-probe-corpus.mjs
export const INVISIBLE = {
zwsp: cp(0x200b), zwnj: cp(0x200c), zwj: cp(0x200d), lrm: cp(0x200e), rlo: cp(0x202e), pdf: cp(0x202c),
wj: cp(0x2060), bom: cp(0xfeff), shy: cp(0xad), rli: cp(0x2067), ...+18warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.plugins/ruflo-adr/hooks/codex-hook.cjs+4
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.plugins/ruflo-ai-team/src/server.mjs+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.plugins/ruflo-ai-team/src/store.mjs+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.plugins/ruflo-x-gateway/src/server.mjs+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.plugins/ruflo-console/hooks/data/workflows.ts+3
criticalSuspicious install scripts in package.jsonpreinstall/postinstall scripts that run shell commands, download files, or execute node code.v3/@claude-flow/browser/package.json
"typecheck": "tsc --noEmit",
"postinstall": "node -e \"const{execSync}=require('child_process');try{execSync('agent-browser --version',{stdio:'ignore'});}catch{console.log('\\n📦 Installing ag...+8infoSuspicious file in repoVery large source file (524KB) — could contain obfuscated payloadpackage-lock.json+2
infoSuspicious file in repoVery large source file (539KB) — could contain obfuscated payloadplugins/ruflo-graph-intelligence/package-lock.json+2
infoSuspicious file in repoVery large source file (993KB) — could contain obfuscated payloadv3/@claude-flow/cli/assets/model-router/seed-router.krr.high.json+2
warningOpen redirect vulnerabilityres.redirect() using unsanitized user input (req.get('host'), req.query, req.body). Can redirect victims to phishing sites.scripts/gen-seed-corpus-v2.mjs
{ tier: 'strong', task: 'Plan an A/B test rollout of a major search-ranking algorithm change. Cover: success metrics + guardrails, ramp schedule (1% → 5% → 25% → 50% → 100%), what triggers a rollbac...+3warningOpen redirect vulnerabilityres.redirect() using unsanitized user input (req.get('host'), req.query, req.body). Can redirect victims to phishing sites.docs/benchmarks/runs/seed-corpus-2026-06-15-23-01-54Z.json
"tier": "strong",
"task": "Audit this OAuth 2.0 implementation for security issues. Identify at least 4 distinct vulnerabilities, propose remediation for each, classify severity, and indic...+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.
1510 files scanned @ 89b0cd0 | 10/29/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access17
obfuscation15
supply chain15
owasp / injection6
telemetry
files 1510/8265rules hit 23engine v7commit 89b0cd0
github
ruvnet/ruflo
🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
79973
9378
514d
8265 files
1510 scanned(18%)
89b0cd0
architecture░▒▓
entry (3) flagged (20) pkg (154)
554 nodes · 762 edgesscroll to zoom · click node to jump to finding