Back to skill

Security audit

Godot Dev Guide

Security checks for vulnerabilities and agentic risk

Overview

This is a Godot development reference skill that is mostly documentation; it does not install or run code itself, though users should be careful with its broad auto-triggering and third-party testing guidance.

Install this as a Godot reference skill if you are comfortable with Chinese-language guidance. Before copying the testing or CI examples, verify the GDUnit4 source, pin dependency versions or container digests where practical, and review any add-on code that will run in your local or CI environment. Consider narrowing auto-invocation triggers if unrelated "scene" or "node" discussions cause unwanted activation.

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 (1)

T08 · Insecure Dependencies

Warning
Location
references/10-testing.md:7
Finding

Unpinned Third-Party Testing and CI Dependencies

Content
View full analysis
search "GDUnit4" > download > install 2. Project > Project Settings > Plugins > enable "GDUnit4" ``` It then instructs users to execute scripts supplied by that dependency: ```bash # Run all tests godot --headless -s addons/gdunit4/bin/GdUnitCmdTool.gd --add test/ # Run a specific file godot --headless -s addons/gdunit4/bin/GdUnitCmdTool.gd --add test/player/test_player.gd # Verbose output godot --headless -s addons/gdunit4/bin/GdUnitCmdTool.gd --add test/ -v ``` The suggested CI workflow also uses a mutable container tag and GitHub Actions references pinned only to major-version tags: ```yaml # .github/workflows/tests.yml name: Tests on: [push, pull_request] jobs: test: runs-on: ubuntu-latest container: image: barichello/godot-ci:4.2 steps: - uses: actions/checkout@v4 - name: Run tests run: | godot --headless -s addons/gdunit4/bin/GdUnitCmdTool.gd \ --add test/ \ --report-directory reports/ - name: Upload results uses: actions/upload-artifact@v3 with: name: test-results path: reports/ ``` ### Technical Analysis The installation instructions identify GDUnit4 only through an AssetLib search. They do not authenticate the package publisher or pin an audited release. This creates exposure to lookalike packages, account compromise, or a malicious future release. The subsequent `godot -s` commands directly execute the installed dependency's GDScript code with the permissions of th ...[truncated 2292 chars]
Remediation
View remediation
``` - Obtain the digest from a trusted registry and review it before upgrades. 4. **Pin GitHub Actions to full commit SHAs** - Replace major-version tags with reviewed commit identifiers: ```yaml - uses: actions/checkout@ - uses: actions/upload-artifact@ ``` - Keep a comment beside each SHA documenting the corresponding release version. 5. **Apply least-privilege CI permissions** - Declare restrictive workflow permissions explicitly: ```yaml permissions: contents: read ``` - Grant additional permissions only to jobs that demonstrably require them. - Do not expose deployment credentials or unrelated repository secrets to test jobs. - Avoid making secrets available to workflows that execute untrusted pull-request code. 6. **Constrain execution** - Run tests in an isolated, ephemeral environment. - Restrict filesystem mounts and outbound network access where practical. - Separate testing from signing, publishing, and deployment jobs. - Review installed add-on scripts before invoking `godot -s`. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (15)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is configured with autoInvoke: true, high priority, and a very broad trigger set covering common Godot terms such as 'scene', 'node', and file extensions. This can cause the skill to activate in many ordinary development conversations where it may be irrelevant, increasing the chance of unnecessary context injection, user confusion, or accidental influence over unrelated tasks.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documented trigger set includes several generic terms such as "scene" and "node" alongside auto-invocation, which can cause the skill to activate in unrelated conversations. This increases the chance that the skill injects guidance outside its intended scope, creating prompt-surface expansion and unintended influence over agent behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description and body are written as a Chinese-only guide, but there is no indication that the user can opt into another language or that the locale restriction is required for a region-specific purpose. This can violate language/locale policy when the skill implicitly constrains output language without user choice.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill is configured with autoInvoke enabled and a wide set of triggers including highly generic terms such as "scene" and "node", which are common in many programming, graphics, and general technical discussions. This can cause the skill to activate outside narrowly intended Godot contexts, injecting unsolicited guidance and increasing the chance of context hijacking or unintended influence over unrelated tasks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file presents all instructional content in a single language and locale, which can constitute a language policy issue when no user opt-in or alternative is offered. The file does not indicate that the skill is intentionally region-specific or provide any language-selection guidance.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file title and body consistently force a specific language/locale, and there is no indication that users can opt into another language or that the skill is intentionally region-specific. Under the stated policy, fixing a single language without opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The line explicitly praises a format of Chinese explanations plus English code as the consistent style, which implies a fixed language choice. Because no user opt-in, multilingual option, or region-specific justification is provided in this file, this may violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

This markdown file contains user-facing instructional content exclusively in Chinese, which may impose a language/locale constraint on users without opt-in. The policy allows locale constraints when they are explicitly documented and justified, but no such justification or language choice appears in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill document is written in Traditional Chinese and does not indicate that users may choose another language or locale. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

This markdown file contains instructional content only in Chinese, and there is no indication that users can opt into another language or that the material is intentionally limited to a Chinese-speaking audience. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown skill/reference content appears to require Chinese comprehension throughout, including headings, comments, and guidance, but does not indicate that users may choose another language. Under the policy provided, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file uses Chinese exclusively for headings, explanations, and comments, which can impose a language constraint on users without opt-in. Under the stated policy, forcing a specific language without user choice is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

This markdown file contains user-facing instructional content exclusively in Chinese, including headings, explanations, and comments, with no indication that users may select another language. Under the policy rule for language or locale constraints, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

This markdown file contains user-facing instructional content exclusively in one language and does not indicate that the user can choose another language. Under the policy for natural-language violations, forcing a specific language without opt-in can be considered a locale-policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file’s headings, instructions, and examples are all presented in Chinese, which imposes a specific language on users without an explicit opt-in. The policy for this audit flags language or locale constraints when the skill does not offer a language choice or justify the restriction.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.