Back to skill

Security audit

Git 提交信息生成器

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward commit-message helper with some usability and documentation cautions but no hidden or unsafe runtime behavior found.

Installers should expect a Chinese-language commit-message generator. Use explicit requests to avoid accidental activation, review generated commit messages before use, and pin versions or use lockfile-backed project scripts if following the optional npx examples in the reference docs.

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/conventional-commits.md:233
Finding
Unpinned npx Commands Can Download and Execute Mutable Third-Party Code## Vulnerability Details **File Location**: `references/conventional-commits.md`, lines 233–240 **Vulnerability Type**: Unpinned third-party package execution **Risk Level**: Medium The documentation recommends the following commands: ```bash # Use conventional-changelog npx conventional-changelog -p angular -i CHANGELOG.md -s # Use semantic-release npx semantic-release ``` ### Technical Analysis The documented `npx` commands do not specify exact package versions and are not tied to reviewed dependencies in `package.json` or a committed lockfile. If either package is unavailable locally, `npx` may retrieve it and its transitive dependencies from the npm registry before executing the resolved package binary. This creates a supply-chain trust boundary that is not apparent from the Skill's otherwise local and dependency-free operation. The effective code executed by these commands can change after the Skill has been reviewed. Risk may arise from a compromised package maintainer or registry account, a malicious or compromised transitive dependency, or an unsafe future package release. ### Attack Path 1. A user follows one of the tool-integration examples in the reference documentation. 2. The specified package is not installed in the project. 3. `npx` resolves the unpinned package and dependencies through the configured npm registry. 4. A compromised or malicious package version is downloaded. 5. Package lifecycle logic or the resolved command executes with the invoking user's privileges. 6. The executed code can access resources available to that user and process, including repository files, writable local files, environment variables, and credentials exposed to the development environment. Exploitation requires compromise or malicious modification of a resolved package, dependency, or configured registry. The audited Skill does not itself contain such a payload. ### Impact Assessment Successfully compromised ...[truncated 412 chars]
Remediation
## Remediation Suggestions 1. Add reviewed, exact versions of `conventional-changelog` and `semantic-release` to project `devDependencies`. 2. Commit the generated lockfile and use a lockfile-enforcing installation workflow such as `npm ci`. 3. Invoke the lockfile-resolved local binaries through package scripts rather than allowing `npx` to resolve unspecified remote versions. 4. If `npx` must remain in the documentation, specify an exact reviewed package version and clearly warn that the command may download and execute third-party code. 5. Use a trusted registry, dependency integrity verification, automated dependency scanning, and controlled updates. 6. Run release tooling with least privilege and avoid exposing unrelated secrets or broadly privileged credentials to the process.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrases include very generic terms such as "commit message" and "git commit", which are likely to collide with ordinary user requests about Git rather than an explicit invocation of this skill. That can cause unintended activation and make the agent apply this skill in contexts the user did not clearly intend, reducing predictability and potentially exposing code diffs or changing response behavior unexpectedly.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger phrases include very generic terms such as “提交信息”, “commit message”, and “git commit”, which are common in normal developer conversation and can cause the skill to activate when the user did not explicitly intend to invoke it. This can lead to inappropriate interception of unrelated requests and prompt-routing confusion, especially in environments with multiple Git-related skills.

Natural-Language Policy Violations

Medium
Confidence
82% confidence
Finding
The skill metadata and content are written to produce Chinese output by default, without indicating any language negotiation or fallback based on user preference. This is not a direct security flaw, but it can create reliability and usability issues where users receive output in an unexpected language, increasing the chance of misunderstanding or accidental misuse of generated commit text.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The activation keyword "提交信息" is very broad and can be triggered during ordinary discussion about commit messages rather than an intentional request to invoke the skill. This increases the chance of unintended skill activation, causing the agent to consume repository context or produce outputs in situations the user did not explicitly request.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The phrase "commit message" is ambiguous in normal developer conversation and may appear in explanations, reviews, or documentation without indicating intent to run the skill. That ambiguity can lead to accidental invocation and unintended processing of surrounding workspace content.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The keyword "git commit" is commonly used in routine command discussion, examples, and troubleshooting, so it is not a reliable signal that the user wants this skill invoked. In a development-tool skill, this broad trigger makes accidental activation more likely during normal repository or terminal-related conversations.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The module docstring presents the skill as a Git commit message generator entirely in Chinese, and the rest of the user-facing strings follow the same pattern. Because the file does not offer users a language/locale choice or explain that the tool is intentionally region-specific, it creates a natural-language locale policy concern under the rule for forced language without opt-in.

Natural-Language Policy Violations

Low
Confidence
81% confidence
Finding
The README is entirely written in Chinese and all examples show Chinese commit messages, but the documentation does not state that output language is configurable or user-selected. This can amount to a language policy issue because the skill appears to assume a specific language by default without opt-in.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
The template states '必须使用 Conventional Commits' as a mandatory rule. Under the natural-language policy check, this imposes a specific language/formatting convention without indicating user choice or that the constraint is limited to a documented organizational context.

Natural-Language Policy Violations

Low
Confidence
94% confidence
Finding
The document instructs users to write subjects in English present-tense imperative form and provides only English examples such as "add" and "resolve." Because the surrounding document is in Chinese and does not offer a language choice or justify an English-only requirement, this is a natural-language locale policy constraint without explicit opt-in.

Static analysis

No suspicious patterns detected.