live · scanning repos
Scanrepo
github.com
github.com / open-jarvis

open-jarvis/OpenJarvis

Python·2133 files·commit 4b5ad51·scanned 8d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 259,344 stars — findings likely legitimate code patterns

verdict accurate?
Partial architecture graph
Desktop app detected
threat-state: lowlive

FINDINGS ░▒▓

warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.frontend/src-tauri/src/lib.rs
            extern "C" fn did_finish(_: &Object, _: Sel, wv: *mut Object, _nav: *mut Object) {
                unsafe {
                    force_transparent(wv);
                }
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.frontend/src-tauri/src/lib.rs
        use std::process::Command;
        if let Ok(output) = Command::new("sysctl").args(["-n", "hw.memsize"]).output() {
            if let Ok(s) = String::from_utf8(output.stdout) {
              ...
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.rust/crates/openjarvis-core/src/hardware.rs
fn run_cmd(args: &[&str]) -> String {
    Command::new(args[0])
        .args(&args[1..])
        .output()
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.rust/crates/openjarvis-tools/src/builtin/git_tools.rs
fn run_git(args: &[&str], cwd: Option<&str>) -> Result<String, String> {
    let mut cmd = Command::new("git");
    cmd.args(args);
    if let Some(dir) = cwd {
+8
criticalRemote 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/install-rust.sh
echo "install-rust.sh: installing Rust toolchain via rustup..."
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable

if [[ -d "$HOME/.cargo/bin" ]]; then
+10
criticalRemote 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/install.sh
#!/usr/bin/env bash
# install.sh — OpenJarvis curl-pipe-bash installer.
#
# Usage:
+10
criticalRemote 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/jarvis-wrapper.sh
    echo "jarvis: venv not found at $VENV" >&2
    echo "Re-run the installer: curl -fsSL https://open-jarvis.github.io/OpenJarvis/install.sh | bash" >&2
    exit 1
fi
+10
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.src/openjarvis/agents/hybrid/mini_swe_agent.py
    url = f"https://github.com/{repo}.git"
    subprocess.run(
        ["git", "clone", "--quiet", url, str(dest)],
        check=True,
+4
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.src/openjarvis/agents/hybrid/skillorchestra/tools.py

    Mirrors the original worker prompt and ``subprocess.run(['python', ...],
    timeout=60)`` verbatim. Execution failures yield empty ``exec_result``
    rather than raising — the orchestrator lear...
+4
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.src/openjarvis/agents/rlm_repl.py
            with redirect_stdout(stdout_buf), redirect_stderr(stderr_buf):
                exec(code, self._namespace)  # noqa: S102
        except Exception as exc:
            error_msg = f"{type(ex...
+7
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.src/openjarvis/cli/_screen.py
        script = _PS_CAPTURE.replace("{path}", path.replace("\\", "/"))
        proc = subprocess.run(
            ["powershell", "-NoProfile", "-NonInteractive", "-Command", script],
            capt...
+4
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.src/openjarvis/core/config.py

            fld_type = eval(fld_type, vars(_cfg_mod))  # noqa: S307

        if i == len(parts) - 1:
+8
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.src/openjarvis/core/config.py

            fld_type = eval(fld_type, vars(_cfg_mod))  # noqa: S307

        if i == len(parts) - 1:
+7
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.src/openjarvis/evals/datasets/daily_digest.py
        "date": "2025-10-17 (Friday)",
        "calendar": "09:00 - Change advisory board (1h)\n11:00 - DR test planning (1h)\n14:00 - Compliance tool eval (1h)",
        "todos": "- Prepare DR test r...
+8
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.src/openjarvis/evals/datasets/daily_digest.py
        "date": "2025-10-17 (Friday)",
        "calendar": "09:00 - Change advisory board (1h)\n11:00 - DR test planning (1h)\n14:00 - Compliance tool eval (1h)",
        "todos": "- Prepare DR test r...
+7
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.src/openjarvis/evals/execution/webchorearena_env.py
            try:
                target_url = eval(func_expr)  # noqa: S307
            except Exception as exc:
                LOGGER.warning("Failed to eval URL func: %s", exc)
+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
warningRust wallet/crypto code with network activityCode handling private keys or signing and also making network requests may be exfiltrating secrets or sending funds to an attacker.frontend/src-tauri/src/lib.rs
///
/// `exit_code` is `None` when the process was terminated by a signal with
/// no exit code (rendered as "unknown" rather than a misleading -1).
fn format_uv_sync_failure(root: &std::path::Path, e...
+5
warningHardcoded IP address in network callFetching data from hardcoded IP addresses instead of domain names is suspicious and may indicate C2 communication.src/openjarvis/core/config.py
            "http://localhost:5174",
            "http://127.0.0.1:3000",
            "http://127.0.0.1:5173",
            "http://127.0.0.1:5174",
+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.rust/crates/openjarvis-security/src/file_policy.rs
        ".secret",
        "id_rsa",
        "id_ed25519",
        ".htpasswd",
+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.rust/crates/openjarvis-tools/src/builtin/file_tools.rs
        let result = tool
            .execute(&serde_json::json!({"path": "id_rsa", "content": "secret"}))
            .unwrap();
        assert!(!result.success);
+5
warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.src/openjarvis/sandbox/mount_security.py
    ".ssh",
    ".gnupg",
    ".env",
    "credentials",
+5
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.src/openjarvis/agents/hybrid/toolorchestra.py+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.src/openjarvis/evals/datasets/coding_task.py+4
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.docs/javascripts/leaderboard.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.frontend/src/components/Chat/InputArea.tsx+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.frontend/src/components/Chat/MessageBubble.tsx+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.frontend/src/components/Chat/SystemPanel.tsx+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.frontend/src/components/Desktop/AgentsPanel.tsx+3
warningHigh-entropy string literalsFound 5 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.frontend/src/components/ui/button.tsx+3
infoSuspicious file in repoExecutable file (install.ps1) in repositorydeploy/windows/install.ps1+2
infoSuspicious file in repoExecutable file (jarvis-service.ps1) in repositorydeploy/windows/jarvis-service.ps1+2
infoAuthor has no other public repositoriesGitHub user "github-actions[bot]" has no other public repositories, common for burner accounts used in scams.+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.

1595 files scanned @ 4b5ad51 | 9/6/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration10
file system access20
obfuscation15
supply chain6
owasp / injection0
telemetry
files 1595/2133rules hit 33engine v5commit 4b5ad51

github

open-jarvis/OpenJarvis

Personal AI, On Personal Devices

Python
9344
2152
211d
2133 files
1595 scanned(75%)
4b5ad51

architecture░▒▓

entry (1) flagged (188) pkg (494)
894 nodes · 2172 edgesscroll to zoom · click node to jump to finding