Back to skill

Security audit

Dependency Map Builder

Security checks for vulnerabilities and agentic risk

Overview

The skill is a local dependency-map report generator with no exfiltration or persistence, though its helper script contains unused audit modes and its shell-command example needs careful path handling.

Use this for local, Chinese-language dependency-map drafts. Run it only on files you intend to analyze, prefer dry-run/stdout for sensitive inputs, and quote paths or invoke the Python script with an argument-array API. Do not change resources/spec.json to an audit mode unless you specifically want the broader local scanning behavior.

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
SKILL.md:34
Finding

Unquoted Path Placeholders in the Documented Shell Command

Content
View full analysis
--output ``` ### Technical Analysis The documented invocation quotes `{baseDir}` but does not quote the replaceable input and output path arguments. If an agent constructs this command as a shell string and substitutes user-controlled path values directly into the placeholders, shell metacharacters within those values can be interpreted as additional shell syntax. For example, a malicious input path containing a command separator could cause the shell to execute an additional command rather than treating the entire value as one filename. The Python script itself does not invoke a shell and is not directly vulnerable; the issue exists in the documented method by which an agent may invoke the script. Exploitation therefore requires all of the following conditions: 1. The agent accepts an attacker-controlled or insufficiently validated input or output path. 2. The path is substituted directly into the documented command. 3. The resulting command is executed through a shell rather than through an argument-array API. 4. The substituted value is not safely quoted or escaped. ### Attack Path 1. An attacker requests processing of a filename containing shell metacharacters, such as a command separator followed by an operating-system command. 2. The agent places that value into the unquoted `` or `` position. 3. The agent passes the assembled command string to a shell. 4. The shell treats the metacharacters as syntax and executes the injected command. 5. The injected command runs with the operating-system permissions of the agent process. ### Impact Assessment Successful exploitation can provide arbitrary command execution under the current agent account. The re ...[truncated 536 chars]
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是项目协同/依赖关系分析工具,重点应是跨团队依赖、关键路径、脆弱节点、催办节奏和风险链输出。但实际代码没有实现项目依赖建模、关键路径计算、团队协同分析或风险链推导。相反,它通过读取 resources/spec.json 决定运行模式,执行通用文本摘要、目录内容扫描、CSV 概览、安全模式匹配和 Skill 规范审计。这些能力与“依赖协调工作流”并非同一主目的,其中 pattern_audit 和 skill_audit 尤其明显偏向安全/合规检查。因此该技能的实际行为与声明用途存在实质性不一致。

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code defines and runs security-style regex scanning for secrets, private URLs, and dangerous shell patterns against arbitrary files, despite the skill being described as a dependency/coordination aid. In context, this turns the skill into a content inspection tool capable of discovering sensitive information in local repositories, which is a strong scope mismatch and raises the risk of unintended secret harvesting or internal data disclosure.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The dispatcher enables multiple unrelated audit modes such as directory scanning, CSV auditing, pattern scanning, and skill package auditing, which materially exceed the manifest's stated dependency-mapping and coordination purpose. This capability expansion is dangerous because it allows the skill to inspect arbitrary local content and repurpose the tool as a general reconnaissance/auditing utility, increasing data exposure 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
81% confidence
Finding

The skill documentation is entirely presented in Chinese and does not indicate that language choice is optional or constrained by a documented regional requirement. Under the language/locale policy, forcing a specific language without user opt-in can be 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
91% confidence
Finding

This markdown file presents all user-facing content in Chinese and does not indicate that other languages are available or that Chinese is an opt-in choice. Under the stated policy, forcing a specific language without user choice is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
82% confidence
Finding

The skill declares no explicit tool scope or permissions boundary, yet its content indicates shell execution and file I/O capabilities via python3 .../scripts/run.py and local resource access. This creates an authorization ambiguity where a seemingly read-oriented planning skill could be granted broader execution power than users or reviewers expect, increasing the risk of unintended file access or command execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown example output is entirely written in Chinese and presents a fixed-language template, with no indication that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking context. That can violate a language/locale policy when the skill implicitly forces a specific language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code emits user-facing report text such as headings and instructions entirely in Chinese, and similar hard-coded Chinese strings appear in other report paths. That forces a specific language/locale on users without opt-in or any documented justification, which matches the natural-language locale policy violation criteria.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill_audit and frontmatter parsing logic inspects arbitrary skill package structure and metadata that are unrelated to dependency mapping. While not directly executing code, this broadens the tool into a validator/reconnaissance utility over local skill repositories, creating unnecessary access to internal project layout and metadata beyond the advertised purpose.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The CLI advertises itself as a local support script, but the implementation exposes broad auditing and scanning functions that materially change the trust boundary and expected behavior. Misleading descriptions are dangerous because users may grant access or run the tool under false assumptions, enabling quiet collection of repository structure and sensitive text content.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README provides example trigger phrases such as '画出这个项目的跨团队依赖图' and '识别关键路径和脆弱节点', but it does not define clear routing boundaries, required context, or negative examples. In a markdown skill description, this can make invocation scope ambiguous because similar everyday project-analysis requests may overlap without stating when the skill should or should not activate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents all user-facing instructions and labels in Chinese, and there is no indication that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking context. The policy requires flagging language or locale constraints when they are imposed without user opt-in or clear justification.

Content

No source excerpt is available for this finding.