Back to skill

Security audit

crucible

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Chinese-language Claude Code delivery workflow skill, with expected local installation and development automation, but users should review its optional global tool install and broad workflow scope.

Install only if you want a Chinese-language, multi-stage development workflow that may create code, docs, tests, and reports in your project. Review the installer paths first, avoid the optional unpinned global npm install unless you trust and pin the package, and require confirmation before dependency installs, git merges, pushes, or PR creation.

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
skill/references/tooling.md:41
Finding

Unpinned Global Third-Party Package Installation

Content
View full analysis

Vulnerability Details

File Location: skill/references/tooling.md:41-43
Vulnerability Type: Unpinned global npm dependency installation
Risk Level: Medium

Vulnerable Code

markdown
### Installation
```bash
npm install -g @fission-ai/openspec && openspec init
text

### Technical Analysis

The tooling guide instructs users or agents to install `@fission-ai/openspec` globally without specifying an exact version or verifying package integrity. Consequently, npm resolves and executes whichever package version and transitive dependency graph the registry serves at installation time.

npm installations may execute package lifecycle scripts, while the subsequent `openspec init` command executes the installed package directly. Both operations run with the permissions of the invoking user. Because the package version is mutable after this Skill was audited, the effective code executed by this instruction cannot be established from the audited repository alone.

The global installation flag (`-g`) increases the affected scope by modifying the user's global npm environment and exposing the package executable outside the current project.

### Attack Path

1. An attacker compromises the npm package, a maintainer account, a transitive dependency, or the relevant registry delivery path.
2. The attacker publishes a malicious version under the existing package name or introduces malicious code into a dependency resolved by that version.
3. A user or agent follows the Skill's tooling guide and runs:
   ```bash
   npm install -g @fission-ai/openspec && openspec init
  1. npm resolves the unpinned malicious release and may execute its lifecycle scripts during installation.
  2. If installation succeeds, the shell immediately executes the installed openspec init command.
  3. The malicious code runs with the invoking user's permissions and may modify the global npm environment or user-accessible files.

Impact Assessment

Successful exploitation pro ...[truncated 630 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin the package to a reviewed exact version rather than resolving the latest release:

    bash
    npm install --save-dev --save-exact @fission-ai/openspec@X.Y.Z
    
  2. Prefer a project-local development dependency over global installation. Invoke it through the locally resolved executable:

    bash
    npm exec -- openspec init
    
  3. Commit and enforce a lockfile so the complete transitive dependency graph and package integrity hashes are reproducible:

    bash
    npm ci
    
  4. Review package provenance, publisher identity, lifecycle scripts, release history, and transitive dependencies before recommending execution.

  5. Where compatible, disable lifecycle scripts during installation:

    bash
    npm install --ignore-scripts --save-dev --save-exact @fission-ai/openspec@X.Y.Z
    
  6. Require explicit user confirmation before installing third-party software, particularly global packages.

  7. Run the installation and initialization in a restricted environment without sensitive credentials, elevated privileges, or unnecessary filesystem access.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (22)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose describes the runtime function of a development workflow skill: orchestrating PM→UX→Dev→Test stages with review loops. The supplied code chunk does not implement such a pipeline. Instead, it is purely an installation script that manages local files under ~/.claude by creating directories, copying packaged skill assets, and deleting them during uninstall. Those filesystem-management capabilities are not reflected in the declared description, and the code’s primary purpose is materially different from the described behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README's user-facing instructions, headings, and usage guidance are presented in Chinese, which effectively forces a specific language for operation and documentation. Under the policy, locale or language constraints should either offer user choice or be explicitly documented as a justified region-specific limitation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file includes commands to run install.sh and install.ps1, including uninstall modes, which are safety-relevant operations because they modify the user's Claude Code skill/command directories. The README does not include any warning or disclosure about what these scripts change, where files are installed, or that uninstall may remove previously installed files.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The title and surrounding instructional content present the skill as operating in Chinese, and the document does not offer an alternative language or ask the user to choose a preferred locale. This creates a natural-language policy concern because it imposes a specific language without explicit opt-in or justification as a region-specific tool.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad project-management and development terms such as 'from scratch', 'full pipeline', and 'team-style development', which can cause the skill to activate in many ordinary conversations. Over-broad routing increases the chance that this powerful orchestration skill takes control when the user did not explicitly request it, potentially overriding narrower or safer skills and expanding access to additional instructions and files.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill content is entirely in Chinese and directs behavior in Chinese without indicating that it should respect the user's language preference. This can cause unexpected language switching, reduce user comprehension of critical review or security output, and create opportunities for misunderstanding in multi-step delivery workflows where requirements and approvals must be precise.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script presents the skill name and user-facing usage text in Chinese, which indicates a language-specific experience. Because the file does not offer an opt-in, alternative locale, or justification that this skill is intentionally region-specific, this appears to violate the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The usage examples require Chinese terms such as '需求', '完整 8 阶段交付', and '开发 + 自审(最常用)', making the skill effectively Chinese-only from the installer's interface. There is no indication that users can select another language or that the restriction is necessary for a documented region-specific purpose.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The activation description is very broad and includes generic phrases like 'building something from scratch', 'quality gates', and several workflow-style keywords. In an agent system, this can cause the skill to trigger for many unrelated software tasks, unexpectedly shifting execution into a complex multi-agent pipeline that may alter behavior, consume resources, or bypass the user's intended simpler workflow.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill name and presentation are explicitly Chinese ('严峻考验式交付') without indicating language adaptation to user preference. If invocation causes outputs, prompts, or artifacts to default to Chinese, users may receive instructions, reviews, or generated documentation in a language they did not request, increasing misunderstanding risk and creating opportunities for hidden or misinterpreted actions in a complex delivery pipeline.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file’s instructional content is written entirely in Chinese and does not indicate that users may choose another language or locale. The policy requires flagging language or locale constraints when they are imposed without explicit user choice or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill content is entirely in Chinese and does not provide a user language choice or document a justified locale restriction. This can exclude users, cause misunderstandings in downstream PM/specification work, and may lead to incorrect requirements or approvals if operators assume the skill is language-flexible when it is not.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The markdown instructions are predominantly written in Chinese, including the title and all operational guidance, with no indication that the user can choose another language. Per the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

This markdown file presents all instructions, templates, and required outputs exclusively in Chinese, including mandated report headings and review prompts. The policy requires flagging language or locale constraints when the skill forces a specific language without user opt-in, and no opt-in or justification is provided here.

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 file presents all instructional content in Chinese and does not provide an opt-in, alternate language, or explanation that the skill is intentionally region-specific. The policy requires flagging language or locale constraints when the skill forces a specific language without user choice.

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 is written entirely in Chinese and includes prescriptive guidance for agent behavior, but it does not indicate that the language is optional or limited to a specific regional/compliance context. Under the language/locale policy rule, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

该 markdown 文件定义了技能触发条件,适用 SQP-1。表中的触发项如“SQL, ORM, query”以及“所有对外 HTTP handler”范围过宽,且未说明排除条件或更具体的上下文边界,容易让普通数据库或接口代码都触发该技能。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The entire document is written in Chinese and does not indicate that other languages are supported or that the user can opt into this locale. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale constraint is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file’s instructional content is written entirely in Chinese, including the protocol title, operational guidance, and recovery steps, with no indication that users may choose another language. The policy allows locale constraints only when user choice is offered or the restriction is clearly documented and justified, neither of which appears here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill explicitly includes branch-finishing actions such as local merge and push+PR, which are repository-changing operations, but it does not pair them with an explicit warning that these actions modify git state and may publish code remotely. In an agent skill intended to automate a delivery pipeline, omission of a strong confirmation/safety boundary can cause unintended merges, pushes, or PR creation, especially if an agent executes the workflow mechanically.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

标题和全文以中文呈现,且未说明这是可选语言或仅适用于特定中文环境。根据 SQP-3,若技能在自然语言层面强制单一语言而没有用户选择或正当范围说明,属于语言/locale 策略风险。

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The testing stage explicitly instructs the agent to write test code, run pytest, and write a report file, but the skill text does not require any user confirmation or warning before executing commands and modifying the workspace. In an agent setting, this can lead to unexpected code execution, file creation, and environment interaction, especially if the generated tests or project code have side effects.

Content

No source excerpt is available for this finding.