Back to skill

Security audit

UE Datatable Editor

Security checks for vulnerabilities and agentic risk

Overview

This skill is a real Unreal Engine DataTable editor, but it can broadly scan local projects and make persistent project or UE asset changes with weak validation safeguards.

Install only if you are comfortable with an agent scanning for Unreal projects and editing/importing DataTable data. Prefer giving an explicit project root and JSON path, use dry-run first, keep source-control backups, review generated UE commands before running them, and do not rely on the built-in validator as a hard safety gate.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/dt_modify.py:133
Finding

Fail-Open Validation Allows Malformed DataTable Content to Be Saved and Imported

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Unvalidated Output Injection

High
Category
Output Handling
Confidence
86% confidence
Finding

The README instructs users to run a generated command in UE Editor to import JSON back into a DataTable, but it does not indicate that the command is validated, escaped, or constrained to a safe template. If any portion of that generated command is influenced by file names, project paths, table names, or modified content, an attacker could potentially inject unintended editor-script behavior or cause unsafe operations when the command is executed.

Content

Scanner excerpt · README.md (reported line 25)May include surrounding context.

md
1. **Discover** → Auto-find UE projects and DataTable JSON files
2. **Search** → Locate target row(s) in the JSON data
3. **Modify** → Edit fields with validation and automatic backup
4. **Import** → Run the generated command in UE Editor to update the DataTable

## Quick Start

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The description promises a broad end-to-end skill for Unreal Engine AI Skills DataTable management, including discovery, search, modification, validation, and re-import into UE. However, this code chunk is narrowly scoped to discovery: it searches filesystem locations for .uproject files and JSON files under Content that resemble DataTables, then prints metadata such as row counts, fields, and sample IDs. While this partially matches the 'discover project → search' portion of the description, it does not implement the rest of the declared workflow. The code also is not specialized to AI Skills tables; it identifies any JSON array whose first object contains a Name field. Therefore the actual behavior is materially narrower than the declared purpose.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The code clearly matches only the 'search/view' subset of the description. It loads a specified JSON file, supports several query modes, and outputs matching records. There is no functionality for discovering a project, editing or modifying skill data, validating schema/content, writing changes back to JSON, importing into Unreal Engine, or handling .uasset/DataTable import operations. This is therefore a description-behavior mismatch because the declared purpose substantially overstates the implemented capabilities and presents a broader primary workflow than this code actually provides.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README describes an automated workflow that discovers local UE projects, locates JSON files, modifies content, and supports import back into the engine, but it does not prominently warn users that these actions may inspect local paths and alter project data. This omission increases the risk of users invoking the skill without understanding that it may traverse their filesystem and change files, especially when combined with broad triggers.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough to match ordinary discussion about skills, DataTables, or UE content, which can cause the skill to activate outside the user's intended scope. In this skill, over-triggering is security-relevant because activation leads to auto-discovery of local UE projects and potentially to file modification workflows, increasing the chance of unintended access or changes.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill describes workflows that read environment/project state and perform file reads and writes, but it does not declare any explicit tool scope such as permissions or allowed-tools. That creates an authorization gap where an agent may invoke broader capabilities than reviewers or users expect, increasing the risk of unintended file modification or workspace discovery.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
74% confidence
Finding

L020 states that the skill works with any UE project, but later import guidance is tied to AI Skills-specific part ranges and a default asset base of /Game/SMG/Configs/DataTables/AISkills (L142-L149). This suggests the actual supported behavior is at least partially specialized to a particular DataTable structure and asset convention, which does not fully match the broad claim of universal UE project support.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explicitly instructs the agent to use generic direct file-editing tools such as replace_in_file or read_file plus write_to_file for 'complex modifications.' This bypasses the safer scripted workflow, removes schema-aware guardrails, and enables arbitrary file modification beyond the intended DataTable scope if the path or content is attacker-controlled or mistaken.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill promotes direct JSON editing and write operations on project files without a clear warning, approval checkpoint, or safety boundary. In a code/project workspace context, silent modification guidance increases the chance of destructive edits, corrupted assets, or unauthorized changes being made through the agent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This file presents its description, usage instructions, and later runtime messages only in Chinese, which can impose a specific language on users without opt-in. Under the policy, forced language or locale in natural-language content is a violation unless the constraint is optional or clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The default discovery behavior searches broadly across the current directory, parent directories, the user's home, desktop, common Unreal locations, and even first-level directories on multiple drive roots. In a skill designed to operate on a user project, this overbroad enumeration can expose unrelated repositories and sensitive local files/metadata, increasing privacy risk and violating least-privilege expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The module docstring, usage instructions, and all user-facing CLI messages are written only in Chinese, which effectively constrains the skill's interface to a specific language. The file does not provide any opt-in, alternative locale, or justification that this tool is intentionally region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The module docstring and usage instructions are entirely in Chinese, which imposes a specific language on users. Under the policy, language forcing without user opt-in or a documented justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The argparse description, help strings, and printed status/error/search messages are all fixed in Chinese. This creates a locale-specific UX without any mechanism for language selection or an explicit justification that the tool is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The descriptions state that DevName is a human-readable development name '(Chinese)' and the Notice examples are likewise Chinese-only. This reads as a locale requirement in the documentation, and no opt-in, alternative language support, or region-specific justification is provided.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.