T08 · Insecure Dependencies
- Location
docs/Threejs-Guide.md:31- Finding
Unpinned gltf-transform Package Retrieval and Execution in Three.js Guide
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
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.
docs/Threejs-Guide.md:31Unpinned gltf-transform Package Retrieval and Execution in Three.js Guide
references/threejs.md:24Repeated Unpinned gltf-transform Execution in On-Demand Three.js Reference
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).
rm -rf ~/.openclaw/skills/game-quality-gates
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).
rm -rf ~/.openclaw/skills/game-quality-gates
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.
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.
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.
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.
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.
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.
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.
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.
## 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.
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.
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.
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.
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.
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.