Back to skill

Security audit

blender-3d-modeling

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a disclosed remote Blender integration, but it asks agents to trust mutable remote instructions and exposes broad custom script execution, so it needs review before installation.

Install only if you trust AgentPMT as a remote execution provider and are comfortable sending models and scripts to its hosted service. Avoid running untrusted Blender Python, verify live schemas instead of blindly treating remote instructions as authoritative, and prefer pinned or ClawHub-reviewed setup paths for account configuration.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:703
Finding

Mutable Remote Instructions Override Locally Audited Skill Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:703-727
Vulnerability Type: Remote instruction trust and precedence flaw
Risk Level: High

Vulnerable Code Snippet

markdown
## Live Schema And Examples
Use the compact schema above for ordinary calls. Before a new production integration, or whenever parameters, enum values, nested objects, outputs, or examples are unclear, fetch live details first.

- Exact schema: call `agentpmt-tool-search-and-execution` with `action: "get_schema"`, and `tool_id: "blender-3d-modeling"`.
- Detailed examples: call `agentpmt-tool-search-and-execution` with `action: "get_instructions"` and `tool_id: "blender-3d-modeling"`, or call this product with `action: "get_instructions"` when the product tool is already selected.
- Treat returned live schema and instructions as more specific than this generated summary.

MCP schema lookup through the main AgentPMT MCP server:

```json
{
  "method": "tools/call",
  "params": {
    "name": "AgentPMT-Tool-Search-and-Execution",
    "arguments": {
      "action": "get_schema",
      "tool_id": "blender-3d-modeling"
    }
  }
}

For live examples, keep the same MCP tool and use these arguments:

json
{
  "action": "get_instructions",
  "tool_id": "blender-3d-modeling"
}
text

### Technical Analysis

The Skill instructs the agent to retrieve live textual instructions from an external AgentPMT service and explicitly gives those instructions precedence over the locally packaged and audited summary. Consequently, the effective behavior of the Skill can change after review without any update to the reviewed files.

The response from `get_instructions` crosses an external trust boundary. The Skill does not require signature verification, comparison against a pinned version, filtering of behavioral directives, or validation that the response is limited to the declared Blender action schema. A compromised service, account, or upstream instruction record could therefore ret
...[truncated 1740 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the instruction that externally returned prose takes precedence over the locally audited Skill.
  2. Retrieve only machine-readable schemas needed for compatibility, not open-ended behavioral instructions.
  3. Validate remote schemas against a pinned local allowlist of action names, fields, types, and endpoint domains.
  4. Pin remote instruction/schema revisions using an immutable version or content digest and fail closed if verification fails.
  5. Treat all remote prose as untrusted data. Explicitly prohibit it from changing safety rules, requesting credentials, redirecting calls, or introducing undeclared tools.
  6. Require explicit user confirmation before enabling capabilities that do not appear in the packaged Skill.
  7. Log the verified schema version or digest used for each integration without logging credentials or sensitive model data.
  8. Prefer updating and re-auditing the packaged Skill when behavior changes rather than dynamically overriding it at runtime.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:766
Finding

Unpinned Third-Party Skill Installation Creates a Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:766-782
Vulnerability Type: Unpinned external dependency installation
Risk Level: Medium

Vulnerable Code Snippet

markdown
If those setup skills are not installed beside this product skill, use the downloads below.

Core AgentPMT setup skills:
- What AgentPMT is: ../what-is-agentpmt
  - ClawHub page: https://clawhub.ai/agentpmt/what-is-agentpmt
  - OpenClaw install: `openclaw skills install what-is-agentpmt`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup
  - ClawHub page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup
  - OpenClaw install: `openclaw skills install agentpmt-account-mcp-rest-api-setup`
  - skills.sh install: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`

skills.sh install script:

```bash
npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup
text

### Technical Analysis

The Skill directs users or agents to install additional third-party Skills from external sources without pinning an immutable package version, repository commit, checksum, or signature. The reviewed artifact therefore cannot establish what content will be installed when these commands are executed.

The dependency is particularly sensitive because one of the externally installed Skills is responsible for AgentPMT account, MCP, REST API, and credential setup. If the upstream repository, package distribution channel, publisher account, or mutable default branch is compromised, malicious instructions could be delivered under a legitimate-looking dependency name.

The use of `npx` may also retrieve and execute current package tooling that is outside the reviewed project. Although the audited file does not itself contain a malicious payload, it establishes an
...[truncated 1398 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every external Skill and installer dependency to an immutable release or repository commit.
  2. Publish and verify cryptographic checksums or signed provenance before installation.
  3. Vendor the required account-setup instructions into the reviewed package where feasible.
  4. Avoid executing mutable package tooling through an unversioned npx invocation.
  5. Require explicit user approval before downloading or installing any additional Skill.
  6. Display the resolved source, version, commit, and expected digest before installation.
  7. Review setup Skills independently because they operate near credential and account trust boundaries.
  8. Restrict setup dependencies to documented AgentPMT domains and reject endpoint substitutions not explicitly approved by the user.
  9. Use a lockfile or equivalent dependency manifest so subsequent installations resolve to the same reviewed content.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (14)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · SKILL.md (reported line 90)May include surrounding context.

md
- `voxel_remesh` rejects requests whose grid cell count exceeds **5,000,000** with `error_code: "BLENDER_VOXEL_GRID_TOO_LARGE"`. The error message includes the minimum-safe `voxel_size`. For a 150 mm bbox the minimum-safe value is ≈ 0.31 mm; smaller voxels make the grid blow up cubically.
- `run_script` rejects payloads larger than **64 KiB** with `error_code: "BLENDER_RUN_SCRIPT_TOO_LARGE"`. Reach for `convert_format` or `render_views` if the script is just orchestrating a few API calls.

#### Input And Output Rules

Supported model inputs for standard render/convert actions are BLEND, GLB, GLTF, FBX, OBJ, STL, DAE, and PLY.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The schema exposes a run_script action that executes arbitrary Blender Python, which is materially broader than the skill’s stated modeling/rendering/printability purpose. Arbitrary script execution in a cloud-hosted Blender environment can enable filesystem access, network retrieval, abuse of compute resources, or attempts to escape intended task boundaries, depending on runtime isolation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Allowing users to submit arbitrary Blender Python scripts is a general-purpose code-execution primitive, not a narrowly scoped rendering feature. In the context of a remote headless Blender service, this increases the attack surface substantially and can be abused for malicious automation, data access, denial of service, or probing the hosting environment.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The 'Multiple renders at once' section states that submitted render requests 'run in parallel'. Earlier sections explicitly document that the GPU runs one render at a time and additional jobs are queued strictly FIFO, so this guidance contradicts the actual described behavior of the skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 832)May include surrounding context.

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/blender-3d-modeling
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 833)May include surrounding context.

md
- What AgentPMT is: ../what-is-agentpmt (ClawHub: `what-is-agentpmt`, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: `npx skills add AgentPMT/agent-skills --skill what-is-agentpmt`)
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup (ClawHub: `agentpmt-account-mcp-rest-api-setup`, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: `npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup`)
- Marketplace product: https://www.agentpmt.com/marketplace/blender-3d-modeling
- AgentPMT main MCP server: https://api.agentpmt.com/mcp/
- AgentPMT REST invoke endpoint: https://api.agentpmt.com/products/purchase

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The schema advertises arbitrary custom script execution but does not prominently warn that this is equivalent to executing untrusted code in the provider’s Blender runtime. Without a clear warning, downstream agents or users may treat it like a normal media-processing action and pass through untrusted prompts or scripts, increasing the chance of misuse and unsafe delegation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.