github.com / open-jarvis
open-jarvis/ openjarvis
Python·2202 files·commit dd68dce·scanned 2d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 15 — 12,231+ stars — findings likely false positives
verdict accurate?
12,231 stars
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);
}+3criticalRust 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) {
...+8criticalRust 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()+8criticalRust 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 {+8criticalRemote 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+10criticalRemote 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+10warningPython 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,+4criticalPython 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...+7warningPython 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...+4warningPython 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/host_cmd.py
try:
result = subprocess.run(
["sysctl", "-n", "machdep.cpu.brand_string"],
capture_output=True,+4criticaleval() 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:+8criticalPython 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:+7criticaleval() 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...+8criticalPython 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...+7criticaleval() 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)+8warningRust 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",+5warningSSH/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);+5warningSSH/credential path accessAccessing .ssh, .aws/credentials, or .env files to steal authentication credentials.src/openjarvis/sandbox/mount_security.py
".ssh",
".gnupg",
".env",
"credentials",+5warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.frontend/src/pages/AgentsPage.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/pages/DataSourcesPage.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.src/openjarvis/connectors/dropbox.py+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/openjarvis/intelligence/model_catalog.py+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/openjarvis/security/scanner.py+3
infoSuspicious file in repoExecutable file (jarvis-service.ps1) in repositorydeploy/windows/jarvis-service.ps1+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.
1658 files scanned @ dd68dce | 10/27/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration10
file system access20
obfuscation15
supply chain6
owasp / injection0
telemetry
files 1658/2202rules hit 30engine v7commit dd68dce
github
open-jarvis/openjarvis
Personal AI, On Personal Devices
12231
2902
257d
2202 files
1658 scanned(75%)
dd68dce
architecture░▒▓
entry (1) flagged (56) pkg (420)
820 nodes · 1899 edgesscroll to zoom · click node to jump to finding