← All scanned servers

Trust Card · Static snapshot

ahujasid__blender-mcp F

35/100 · 9 findings (3 critical) · scope excessive · Ranked #52 of 53 scanned.

Scanned 2026-09-09 · engine v0.1.0 (8 regex rules, OWASP-mapped) · upstream ahujasid/blender-mcp @ 5f8ddaf (2026-09-07)

Score breakdown

security 0
permissions 20
provenance 65
reliability 85
stability 75

Score constrained by 3 critical and 6 high-severity findings.

Fix first (9 critical/high)

SeverityRuleFindingRemediation
CRITICALAT-SEC-004 (ASI05)eval() / Function Constructor Invocation
src/blender_mcp/safe_mode.py:196
Evidence: "eval": "eval() executes arbitrary expressions",
Eliminate eval(). Use safe AST parsers or isolated sandboxes (e.g. E2B Firecracker microVMs).
CRITICALAT-SEC-002 (LLM02)Hardcoded Credential or API Secret
tests/test_polypizza.py:17
Evidence: API_KEY = "test-key-not-a-real-one"
Move credentials to secure environment variables or a key vault. Never commit API keys.
CRITICALAT-SEC-004 (ASI05)eval() / Function Constructor Invocation
tests/test_safe_mode.py:146
Evidence: "eval": "eval('1+1')",
Eliminate eval(). Use safe AST parsers or isolated sandboxes (e.g. E2B Firecracker microVMs).
HIGHAT-SEC-005 (ASI02)Unrestricted Recursive File Deletion / Modification
addon.py:1578
Evidence: os.unlink(tmp_path)
Enforce strict jail/root directories and require explicit human-in-the-loop confirmation before file deletions.
HIGHAT-SEC-006 (LLM06)Unfiltered SSRF / Arbitrary Network Egress
addon.py:1414
Evidence: response = requests.get(url, params=params, headers=REQ_HEADERS)
Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254).
HIGHAT-SEC-006 (LLM06)Unfiltered SSRF / Arbitrary Network Egress
addon.py:3005
Evidence: response = requests.get(url, headers=headers, params=params, timeout=30)
Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254).
HIGHAT-SEC-005 (ASI02)Unrestricted Recursive File Deletion / Modification
src/blender_mcp/bundled/addon.py:1578
Evidence: os.unlink(tmp_path)
Enforce strict jail/root directories and require explicit human-in-the-loop confirmation before file deletions.
HIGHAT-SEC-006 (LLM06)Unfiltered SSRF / Arbitrary Network Egress
src/blender_mcp/bundled/addon.py:1414
Evidence: response = requests.get(url, params=params, headers=REQ_HEADERS)
Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254).
HIGHAT-SEC-006 (LLM06)Unfiltered SSRF / Arbitrary Network Egress
src/blender_mcp/bundled/addon.py:3005
Evidence: response = requests.get(url, headers=headers, params=params, timeout=30)
Define an explicit egress domain allowlist and block private IP ranges (127.0.0.1, 10.0.0.0/8, 169.254.169.254).

Permissions

Scope: excessive · Shell: enabled · Network egress: yes · File deletion: enabled · Human approval: none

Provenance

License: MIT · Lockfile: no · Security policy: no · Signals: unverified origin

Independently scanned by the AgentTrust registry (not self-reported by the project). Static analysis only — no code executed, findings need human triage, counts may include test/example code. Static snapshot; re-scan before relying on it: npx @eulogik/agenttrust scan https://github.com/ahujasid/blender-mcp. Scores move with every upstream commit; pages refresh weekly. How scoring works.