live · scanning repos
Scanrepo
github.com
github.com / volcengine

volcengine/OpenViking

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

score capped at 15 — 40,755+ stars — findings likely false positives

verdict accurate?
40,755 stars
44% 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.crates/ov_cli/src/cli_arg_scan.rs
    fn value_options_are_discovered_from_clap_metadata() {
        let mut command = Command::new("ov")
            .arg(
                Arg::new("owner")
+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.crates/ov_cli/src/commands/filesystem.rs
            let previous = std::env::var(key).ok();
            unsafe {
                std::env::set_var(key, value);
            }
+3
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.crates/ragfs/src/cache_runtime/dynamic/loader.rs
    }
    let library = unsafe { Library::new(path) }.map_err(|error| {
        CacheError::Unavailable(format!(
            "failed to load dynamic provider {}: {error}",
+3
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.crates/ragfs/src/cache_runtime/dynamic/provider.rs
                let mut error = OwnedBufferV1::default();
                let status = unsafe {
                    callback(
                        handle,
+3
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.openviking_cli/utils/ollama.py
    try:
        result = subprocess.run(["ollama", "pull", model_name], check=False)
        return result.returncode == 0
    except FileNotFoundError:
+4
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.benchmark/aml/eval/evaluate.py
    try:
        compile(patched_source, str(pipeline), "exec")
    except SyntaxError as exc:
        raise RuntimeError(f"cannot apply AML pipeline output compatibility fix: {exc}") from exc
+7
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.bot/vikingbot/agent/tools/ov_file.py
            lines.append(
                "You can now process these with exec (jq/wc/grep/head/python) or read_file."
            )
            return "\n".join(lines)
+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.bot/workspace/skills/opencode/opencode_utils.py
    try:
        result = subprocess.run(
            cmd,
            shell=True,
+4
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.examples/hermes-plugin/tests/test_quick_local_preflight.py
            try:
                exec(compile(command[2], "<llm-preflight>", "exec"), {})
            except SystemExit as exc:
                code = exc.code
+7
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.examples/memory-plugin-shared/install.sh
# Install without prompts:
#   curl -fsSL https://openviking.ai/install | bash -s -- --yes --url <server-url> --api-key <api-key>
# (https://openviking.ai/install is a short script that downloads this...
+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.examples/openclaw-plugin/tests/e2e/test-archive-expand.py
        try:
            result = subprocess.run(
                gateway_restart_cmd,
                shell=True,
+4
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.openviking/session/train/interfaces.py

    async def eval(
        self,
        case_loader: CaseLoader,
+8
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.openviking/session/train/pipeline.py
    Benchmark runners should explicitly compose them, for example:
    ``eval(test) -> train(train) -> eval(test)``.
    """
+8
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.openviking/session/train/run_batch_train_eval.py
        default=200,
        help="Concurrent rollout executions for train and eval (default: 200)",
    )
    parser.add_argument(
+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
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.openviking/session/memory/utils/resource_refs.py+3
warningHigh-entropy string literalsFound 5 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.benchmark/locomo/vikingbot/preflight_eval_runtime.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.bot/vikingbot/channels/feishu.py+3
infoSuspicious file in repoVery large source file (540KB) — could contain obfuscated payloadweb-studio/package-lock.json+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.

2351 files scanned @ 4ab22a4 | 10/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation15
supply chain2
owasp / injection0
telemetry
files 2351/5331rules hit 19engine v7commit 4ab22a4

github

volcengine/OpenViking

Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.

Python
40755
3299
298d
5331 files
2351 scanned(44%)
4ab22a4

architecture░▒▓

entry (0) flagged (28) pkg (426)
826 nodes · 1383 edgesscroll to zoom · click node to jump to finding
LOW (15/100) — volcengine/OpenViking — ScanRepo