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")+8warningRust 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);
}+3warningRust 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}",+3warningRust 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,+3warningPython 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:+4criticalPython 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+7criticalPython 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)+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.bot/workspace/skills/opencode/opencode_utils.py
try:
result = subprocess.run(
cmd,
shell=True,+4criticalPython 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+7criticalRemote 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,+4criticaleval() 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,+8criticaleval() 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)``.
"""
+8criticaleval() 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(+8warningHigh-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.
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