Back to skill

Security audit

luban-skill

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a disclosed Luban game-configuration editor, but it needs review because one code-generation command can execute unsafe shell input.

Review before installing. Use this only in trusted Luban game-configuration repositories, require explicit user confirmation for every write/delete, avoid --force unless you have a backup, and do not pass user-supplied text into gen, --luban-cmd, --output, or --data-dir. Pin openpyxl and replace the gen shell invocation with argument-list subprocess execution before using it in sensitive environments.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/luban_helper.py:2415
Finding

Shell Command Injection in the Luban Code Generation Command

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
scripts/requirements.txt:1
Finding

Unpinned Third-Party Dependency Produces Non-Reproducible Installations

Content
View full analysis
=3.1.0 ``` The documentation also recommends installing the latest package selected by the configured package index: ```text pip install openpyxl ``` ### Technical Analysis The requirement accepts every future `openpyxl` release equal to or newer than version 3.1.0. The installation instructions are even less restrictive and request whichever version pip selects at installation time. No lock file or package hash is supplied. Consequently, two installations performed at different times can retrieve different artifacts. This weakens build reproducibility and makes the project dependent on the continued integrity of future package releases and the package index or mirror configured in the execution environment. This review found no evidence that `openpyxl` itself is malicious. The issue is the absence of version and artifact integrity controls, not a confirmed compromise of the named dependency. ### Attack Path 1. A user or automated Agent follows the documented installation process. 2. Pip queries its configured package index or mirror. 3. Because no exact version or artifact hash is required, pip selects any compatible release satisfying `>=3.1.0`. 4. If a future selected release or the configured index is compromised, malicious installation or runtime behavior could execute in the environment. 5. The dependency would then run with the privileges of the installing user and, when imported, the Skill process. ### Impact Assessment The practical impact depends on a separate compromise of a future dependency release or package source. If that occurs, malicious package code could execute during installation or import ...[truncated 394 chars]
Remediation
View remediation
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 (59)

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The trigger policy is overly broad and mandatory, covering many generic terms like 配置表, Excel表, 字段, 修改配置, and 游戏数据, and even instructs invocation when Luban is not explicitly mentioned. This can cause the skill to be force-selected in unrelated conversations involving general configuration or spreadsheet editing, increasing the chance of unnecessary shell/file access and unintended modification workflows.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python scripts/luban_helper.py <command> --data-dir <项目的Datas目录>

Static analysis

No suspicious patterns detected.