Back to skill

Security audit

Game Quality Gates

Security checks for vulnerabilities and agentic risk

Overview

This is a game-development checklist skill with a supply-chain caution in its Three.js examples, but no hidden persistence, credential access, or unrelated behavior was found.

Before installing, be aware that this skill will load automatically for a wide range of game-development work. Treat the Three.js npx asset-compression commands as examples only: pin @gltf-transform/cli to a reviewed version or run an already installed local binary under a lockfile. Review the GitHub source before manual clone/update installs.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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)

T08 · Insecure Dependencies

Warning
Location
docs/Threejs-Guide.md:31
Finding
Unpinned gltf-transform Package Retrieval and Execution in Three.js Guide<![CDATA[ ## Vulnerability Details **File Location**: `docs/Threejs-Guide.md:31-35` **Vulnerability Type**: Unpinned third-party package retrieval and execution **Risk Level**: Medium ### Vulnerable Code ```bash npx gltf-transform resample input.glb tmp1.glb npx gltf-transform dedup tmp1.glb tmp2.glb npx gltf-transform prune tmp2.glb tmp3.glb npx gltf-transform quantize tmp3.glb tmp4.glb npx gltf-transform draco tmp4.glb output.glb ``` ### Technical Analysis The guide instructs users or an AI Agent to invoke `gltf-transform` through `npx` without declaring an exact package version, lockfile, integrity value, or local-only execution restriction. If the command is unavailable locally, `npx` may retrieve the package and its dependency graph from the configured package registry before executing its CLI code. Consequently, the code that runs can differ from the code originally reviewed with this Skill. Risks include a compromised package release, compromised transitive dependency, registry or configuration manipulation, and unexpected resolution to a newer package version. The package is not known to be malicious based on the audited files. The vulnerability is the unsafe and non-reproducible dependency execution pattern. ### Attack Path 1. A developer or Agent follows the documented GLB compression procedure. 2. `gltf-transform` is not already installed as a verified local dependency. 3. `npx` resolves and downloads the package and its dependencies from the configured registry. 4. An attacker-controlled or compromised package version is selected due to the absence of an exact version and verified lockfile. 5. The downloaded package's CLI or lifecycle code executes with the invoking user's permissions. 6. Malicious code can inspect accessible files, alter the project, invoke child processes, or make outbound network requests. ### Impact Assessment Successful exploitation would provide code execution within the security context of the user or Agent running ...[truncated 588 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Add the verified CLI package as an exact-version development dependency rather than resolving it dynamically: ```bash npm install --save-dev --save-exact @gltf-transform/cli@VERIFIED_VERSION ``` 2. Commit the package manifest and lockfile, and require lockfile-based installation such as: ```bash npm ci ``` 3. Invoke only the installed local binary: ```bash npx --no-install gltf-transform resample input.glb tmp1.glb ``` Alternatively, define reviewed package scripts in `package.json`. 4. Verify the correct package identity and review the selected version and its transitive dependencies before documenting it. 5. Enable dependency scanning and lockfile integrity checks in CI. 6. Run asset-processing tools in a restricted environment with minimal filesystem access, no unnecessary credentials, and outbound network access disabled where practical. 7. Update the guide to warn that package installation executes third-party code and should not occur automatically without user approval. ]]>

T08 · Insecure Dependencies

Warning
Location
references/threejs.md:24
Finding
Repeated Unpinned gltf-transform Execution in On-Demand Three.js Reference<![CDATA[ ## Vulnerability Details **File Location**: `references/threejs.md:24-28` **Vulnerability Type**: Unpinned third-party package retrieval and execution **Risk Level**: Medium ### Vulnerable Code ```bash npx gltf-transform resample input.glb tmp1.glb npx gltf-transform dedup tmp1.glb tmp2.glb npx gltf-transform prune tmp2.glb tmp3.glb npx gltf-transform quantize tmp3.glb tmp4.glb npx gltf-transform draco tmp4.glb output.glb ``` ### Technical Analysis The on-demand Three.js reference repeats the unpinned `npx` workflow. Because `SKILL.md` directs the Agent to load this reference for Three.js tasks, an Agent may follow these commands during asset optimization. No exact dependency version, lockfile, integrity verification, or `--no-install` option is supplied. If no verified local binary is present, `npx` may retrieve and execute code from the package registry. This creates a supply-chain execution channel whose effective code can change independently of the reviewed Skill files. There is no evidence in the repository that `gltf-transform` is intentionally malicious. The issue is the failure to constrain and verify executable third-party dependencies. ### Attack Path 1. The Skill activates for a Three.js project and loads `references/threejs.md`. 2. The Agent follows the documented compression pipeline. 3. The requested executable is missing locally, causing `npx` to resolve it from the configured registry. 4. A compromised release, transitive dependency, or attacker-controlled registry response supplies malicious code. 5. The package executes under the Agent or developer account. 6. The payload accesses any project or user resources permitted to that process and may modify files or communicate externally. ### Impact Assessment Exploitation can result in arbitrary code execution with the invoking account's existing privileges. The package could access project source and assets, modify build artifacts, inspect readable local data, invoke subproce ...[truncated 282 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace the dynamic `npx` examples with an exact-version, locally installed development dependency. 2. Commit and enforce a reviewed lockfile using reproducible installation commands such as `npm ci`. 3. Use `npx --no-install gltf-transform ...` or equivalent package-manager functionality to prevent implicit downloads. 4. Verify package identity, provenance, version, and transitive dependencies before adoption. 5. Keep the primary guide and reference copy synchronized so neither retains the unsafe commands. 6. Run third-party asset tooling in a least-privilege build environment without unrelated credentials or unrestricted access to user directories. 7. Apply dependency auditing, update review, and registry allowlisting in CI where available. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Tool Parameter Abuse

High
Category
Tool Misuse
Content
### Uninstalling

```bash
rm -rf ~/.openclaw/skills/game-quality-gates
```

---
Confidence
90% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Tool Parameter Abuse

High
Category
Tool Misuse
Content
### Uninstalling

```bash
rm -rf ~/.openclaw/skills/game-quality-gates
```

---
Confidence
90% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Vague Triggers

Medium
Confidence
95% confidence
Finding
The manifest says to activate the skill when 'building, reviewing, debugging, or deploying any game project,' which is a very broad set of ordinary activities rather than a narrowly defined trigger. It does not provide explicit trigger phrases, scope limits, or negative examples, so the skill could be invoked for many routine conversations about games.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The installation guide states the skill auto-triggers for broad categories such as building, reviewing, debugging, and deploying any game-related project. Broad activation increases the chance the skill influences unrelated or sensitive workflows without explicit user intent, which is risky because skill content must be treated as untrusted prompt material and can shape agent behavior in many contexts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The documentation instructs users to run `npx gltf-transform` without pinning a package version, which can fetch and execute whatever the latest published package is at runtime. If the upstream package, dependency chain, or package name is compromised, users following the guide could execute attacker-controlled code on their development machine or CI environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
This command uses `npx gltf-transform` without an explicit version, causing dynamic retrieval and execution of the current package release. In a developer guide, that creates a supply-chain risk because anyone following the instructions may unknowingly run a tampered or unexpected package version.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
Running unpinned `npx gltf-transform` from documentation introduces executable supply-chain exposure each time the command is used. Because `npx` may resolve to the newest available package, a compromised release could lead to arbitrary code execution in local development or automated build contexts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The guide recommends invoking `npx gltf-transform` without version pinning, which is unsafe because it executes code fetched from the package registry at runtime. In build and asset pipelines, this can become an entry point for dependency hijacking or malicious package updates affecting developers and CI runners.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
This final pipeline step also relies on unpinned `npx gltf-transform`, preserving the same supply-chain execution risk across the full workflow. Since the skill is a prescriptive development guide, users are likely to copy-paste these commands directly, increasing the practical likelihood of exposure.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Rule 2: Respect Active Buffs ⚡

**Problem:** Code modifies speed/attack/size without checking if a temporary effect is active. Buff gets silently overwritten.

**Solution:** Always use the current baseline (which may already be modified by buffs), not the raw base value.
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The documentation instructs users to run `npx gltf-transform` without pinning a specific package version, which can pull whatever version is current at execution time. That creates a supply-chain and reproducibility risk: a malicious or compromised upstream release, or even a breaking update, could execute unexpected code on the developer's machine during use.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
This command uses `npx gltf-transform` without version pinning, so it depends on the latest package resolution at runtime rather than a reviewed, fixed artifact. In a developer-facing skill, that increases supply-chain exposure because running the example may download and execute unreviewed package code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
Because the example uses `npx gltf-transform` with no pinned version, users may execute different code over time depending on the current registry state. If the package or one of its dependencies is compromised, this documentation becomes a delivery vector for arbitrary code execution in the developer environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The unversioned `npx gltf-transform` invocation makes the build/compression workflow non-deterministic and exposes users to upstream package changes at execution time. In practical terms, this can lead to compromised tooling, unexpected behavior, or broken asset pipelines if the latest release changes semantics.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
This final step in the pipeline also relies on `npx gltf-transform` without a fixed version, so anyone following the documented process may fetch and run whatever package version is currently published. Since `npx` executes package binaries, a malicious release could directly impact the developer workstation or CI runner.

Static analysis

Detected: suspicious.destructive_delete_command

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
docs/Installation.md:38