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

ahujasid/blender-mcp

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

score capped at 1526,028+ stars — findings likely false positives

verdict accurate?
26,028 stars
Research / educational context
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.src/blender_mcp/bundled/addon.py
            with redirect_stdout(capture_buffer):
                exec(code, namespace)

            captured_output = capture_buffer.getvalue()
+7
criticalPython remote code executionFetching code from a remote URL and immediately executing it (exec(requests.get(...).text)) is a classic malware dropper pattern.src/blender_mcp/bundled/addon.py
import time
import requests
import tempfile
import traceback
+10
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.addon.py
            with redirect_stdout(capture_buffer):
                exec(code, namespace)

            captured_output = capture_buffer.getvalue()
+7
criticalPython remote code executionFetching code from a remote URL and immediately executing it (exec(requests.get(...).text)) is a classic malware dropper pattern.addon.py
import time
import requests
import tempfile
import traceback
+10
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_server_threading.py
    }
    exec(compile(ast.Module(body=body, type_ignores=[]), "<addon>", "exec"), namespace)
    return namespace["BlenderMCPServer"], registered
+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 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/blender_mcp/bundled/addon.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.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.

15 files scanned @ c69b901 | 8/19/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation12
supply chain0
owasp / injection0
telemetry
files 15/25rules hit 9engine v5commit c69b901

github

ahujasid/blender-mcp

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

Python
26028
2477
540d
25 files
15 scanned(60%)
c69b901

architecture░▒▓

entry (1) flagged (5) pkg (49)
64 nodes · 146 edgesscroll to zoom · click node to jump to finding