live · scanning repos
Scanrepo
github.com
github.com / affaan-m

affaan-m/ECC

JavaScript·3493 files·commit d8409a4·scanned 4d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 15243,048+ stars — findings likely false positives

verdict accurate?
243,048 stars
Crypto/Web3 project
22% file coverage
Partial architecture graph
threat-state: lowlive

FINDINGS ░▒▓

criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.ecc2/src/notifications.rs
fn run_notification_command(program: &str, args: &[String]) -> Result<()> {
    let status = std::process::Command::new(program)
        .args(args)
        .status()
+8
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.ecc2/src/session/daemon.rs
    // SAFETY: kill(pid, 0) probes process existence without delivering a signal.
    let result = unsafe { libc::kill(pid as libc::pid_t, 0) };
    if result == 0 {
        return true;
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.ecc2/src/session/runtime.rs
        let mut rx = output_store.subscribe();
        let mut command = Command::new("/bin/sh");
        command
            .arg("-c")
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.ecc2/src/worktree/mod.rs

    let output = Command::new("git")
        .arg("-C")
        .arg(repo_root)
+8
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.skills/skill-comply/scripts/runner.py

    result = subprocess.run(
        [
            "claude", "-p", scenario.prompt,
+4
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers..opencode/tools/security-audit.ts
  const securityPatterns = [
    { pattern: /\beval\s*\(/g, name: "eval() usage - potential code injection" },
    { pattern: /innerHTML\s*=/g, name: "innerHTML assignment - potential XSS" },
    { pa...
+8
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.tests/test_invariant_runner.py
        (
            ("python -c \"import os; os.system('touch /tmp/runner_test_pwned_marker')\"",),
            "python_interpreter",
        ),
+4
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
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.ecc2/src/observability/mod.rs
        "auth",
        "id_rsa",
        ".pem",
        ".key",
+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.scripts/hooks/governance-capture.js
  /\.key$/,
  /id_rsa/,
];
+5
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code..claude/workflows/ecc-pro-security-roadmap.js+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code..kiro/agents/architect.json+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code..kiro/agents/build-error-resolver.json+4
warningHigh-entropy string literalsFound 6 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode..pi/extensions/index.ts+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.scripts/lib/agent-proximity/index.js+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.scripts/lib/plan-canvas/server.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.scripts/ci/catalog.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.scripts/ci/scan-supply-chain-iocs.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.scripts/ci/validate-workflow-security.js+3
infoSuspicious file in repoExecutable file (install_hook_wrapper.ps1) in repositorydocs/fixes/install_hook_wrapper.ps1+2
infoSuspicious file in repoExecutable file (patch_settings_cl_v2_simple.ps1) in repositorydocs/fixes/patch_settings_cl_v2_simple.ps1+2
infoSuspicious file in repoVery large source file (528KB) — could contain obfuscated payloadecc2/src/tui/dashboard.rs+2

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.

771 files scanned @ d8409a4 | 8/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access10
obfuscation15
supply chain8
owasp / injection0
telemetry
files 771/3493rules hit 22engine v5commit d8409a4

github

affaan-m/ECC

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

JavaScript
243048
36769
224d
3493 files
771 scanned(22%)
d8409a4

architecture░▒▓

entry (0) flagged (155) pkg (101)
501 nodes · 701 edgesscroll to zoom · click node to jump to finding