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

ahujasid/mcp-for-blender

Python·38 files·commit 35de9ba·scanned 2h ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 15 — 29,305+ stars — findings likely false positives

verdict accurate?
29,305 stars
Research / educational context
threat-state: lowlive

FINDINGS ░▒▓

criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.src/blender_mcp/safe_mode.py
_FORBIDDEN_CALLABLES: Final[dict[str, str]] = {
    "eval": "eval() executes arbitrary expressions",
    "exec": "exec() executes arbitrary code",
    "compile": "compile() produces executable code ob...
+8
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.src/blender_mcp/safe_mode.py
_FORBIDDEN_CALLABLES: Final[dict[str, str]] = {
    "eval": "eval() executes arbitrary expressions",
    "exec": "exec() executes arbitrary code",
    "compile": "compile() produces executable code ob...
+7
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_addon_autostart.py
    }
    exec(  # noqa: S102 - execute only the selected functions from our own source.
        compile(ast.Module(body=body, type_ignores=[]), "<addon>", "exec"), namespace
    )
+7
criticaleval() usage detectedeval() executes arbitrary code and is commonly used in malware to run obfuscated payloads fetched from remote servers.tests/test_safe_mode.py
    # interpreter escapes
    "eval": "eval('1+1')",
    "exec": "exec('import os')",
    "open_builtin": "data = open('/etc/passwd').read()\nprint(data)",
+8
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_safe_mode.py
    # interpreter escapes
    "eval": "eval('1+1')",
    "exec": "exec('import os')",
    "open_builtin": "data = open('/etc/passwd').read()\nprint(data)",
+7
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 6 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/blender_mcp/addon_manager.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.src/blender_mcp/safe_mode.py+3
warningHigh-entropy string literalsFound 12 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/blender_mcp/server.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.

24 files scanned @ 35de9ba | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation9
supply chain0
owasp / injection0
telemetry
files 24/38rules hit 9engine v6commit 35de9ba

github

ahujasid/mcp-for-blender

Community plugin to control Blender 3D with any LLM of your choice

Python
29305
2687
567d
38 files
24 scanned(63%)
35de9ba

architecture░▒▓

entry (1) flagged (6) pkg (46)
70 nodes · 146 edgesscroll to zoom · click node to jump to finding