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

Ar9av/obsidian-wiki

Python·489 files·commit 2f10142·scanned 1h ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 25 — 3,488 stars — findings likely legitimate code patterns

verdict accurate?
22% file coverage
threat-state: lowlive

FINDINGS ░▒▓

criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.extensions/brain/host/brain_fill_host.py
    form schema  ->  obsidian-wiki context-pack --json   (deterministic, no LLM)
                 ->  claude -p / codex exec              (subscription-billed)
                 ->  {field_id: value, c...
+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.tests/test_session_recap_hook.py
    }
    return subprocess.run(
        ["bash", str(HOOK)], cwd=str(cwd), env=environment,
        capture_output=True, text=True, timeout=60,
+4
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_stop_hook_behavior.py
    def test_python_exec_counts_as_mutating(self):
        entries = [_bash_entry("python3 -c \"exec(open('payload.py').read())\"")] * 4
        self.assertEqual(self._run(entries).returncode, 2)
+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.tests/test_stop_hook_behavior.py
        # Isolated TMPDIR so sentinel state never leaks between tests.
        return subprocess.run(
            ["bash", str(HOOK)],
            input=json.dumps(payload),
+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
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.extensions/brain/host/install.sh
    TARGETS=(
      "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts"
      "$HOME/Library/Application Support/Google/Chrome Canary/NativeMessagingHosts"
      "$HOME/Library/Appl...
+10
warningHigh-entropy string literalsFound 6 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.extensions/brain/host/brain_fill_host.py+3
warningHigh-entropy string literalsFound 8 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.extensions/brain/popup.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.extensions/brain/popup.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.obsidian_wiki/ast_extractor.py+3
warningHigh-entropy string literalsFound 27 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.obsidian_wiki/cli.py+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.obsidian_wiki/graphrag.py+3

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.

110 files scanned @ 2f10142 | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution24
network & exfiltration0
file system access10
obfuscation15
supply chain0
owasp / injection0
telemetry
files 110/489rules hit 12engine v6commit 2f10142

github

Ar9av/obsidian-wiki

Framework for AI agents to build and maintain a digital brain through Obsidian wiki | Memory System for Agents

Python
3488
346
172d
489 files
110 scanned(22%)
2f10142

architecture░▒▓

entry (0) flagged (11) pkg (86)
187 nodes · 484 edgesscroll to zoom · click node to jump to finding