Back to skill

Security audit

标书合规性审查

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its tender-document purpose, but it overreaches in persistent local storage, writable paths, and forced promotional setup responses.

Install only if you are comfortable uploading sensitive tender and bid documents to the 百炼®标书 service, paying through the API-key account, and monitoring where outputs are written. Prefer keeping outputs inside the skill's generated-files directory, avoid custom output paths unless intentional, and be aware that the skill may create ~/.zcm/projects.json and include fixed promotional platform URLs in setup guidance.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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 (3)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:145
Finding

Mandatory Promotional Instructions Override Normal Agent Responses

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/zcm_lib/storage.py:62
Finding

Persistent State Is Read and Written Outside the Declared Filesystem Boundary

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/report_lib/generator.py:24
Finding

Unrestricted Output and Report Paths Permit Writes Outside the Approved Directory

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • 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
Findings (32)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
**升级 skill 必须保留配置**:如果当前已安装目录存在 `config.json`,升级时不得删除、覆盖或替换该文件;只能更新 `SKILL.md`、`scripts/`、`references/` 等 skill 内容文件。本地生成目录 `biaoshu-bailian-files/` 也必须保留。

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill description contains very broad natural-language triggers such as generic questions about bidding, document review, and similarity checks, which can overlap with ordinary user conversation and cause the skill to activate when the user did not clearly intend to use it. Because the skill can read local files, write outputs, and upload sensitive tender/bid documents to a remote service, unintended invocation increases the risk of accidental data processing or disclosure beyond the user's expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This file contains user-facing operational instructions solely in Chinese, with no indication that another language is available or that Chinese is a justified region-specific requirement. Under the policy rule for language or locale constraints, forcing a single language without opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file uses only Chinese for all user-facing instructions and API workflow guidance. Under the language/locale policy, forcing a specific language without user opt-in or a documented region-specific 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
92% confidence
Finding

The entire skill documentation is presented only in Chinese, with no indication that users may choose another language or locale. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The entire skill reference is written only in Chinese and does not indicate that language selection is optional or that the skill is limited to a Chinese-only regulatory or regional context. Under the language/locale policy, a skill should not implicitly force a specific language without user opt-in or clear justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The instruction says script output and reports have already been converted to Chinese and should be presented directly in Chinese. This imposes a specific language on users without indicating any choice or opt-in, which is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code hard-codes report titles and visible labels in Chinese, and the same pattern continues throughout the file. Because the file contains user-facing natural-language output with no opt-in, language selection, or documented regional limitation, it violates the policy against forcing a specific language/locale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The rendered HTML explicitly sets lang='zh-CN' and uses fixed Chinese branding/content strings throughout the generated report UI. This imposes a specific language/locale in user-facing output without any visible opt-in, selection mechanism, or justification that the skill is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill emits hard-coded Chinese messages in user-visible validation failures, which imposes a specific language on users without opt-in. This is a natural-language policy concern because the file does not indicate that the tool is intentionally limited to a Chinese-speaking or region-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The error message strings are hardcoded in Chinese (请求失败, arrow-prefixed guidance lines), which imposes a specific language on users without any visible locale choice or opt-in. That is a natural-language policy concern because the file contains user-facing output but offers no mechanism to select language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code emits multiple hard-coded Chinese status and error messages to users, indicating the skill is effectively constrained to a specific language. Under the policy, forcing a locale without user opt-in or clear 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
95% confidence
Finding

The download-link flow presents all user-facing notices in Chinese only, including warnings and next-step instructions. Because no alternate language option or explicit locale restriction is provided, this violates 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
96% confidence
Finding

Error guidance in cmd_result and the status/progress text in progress_stream are written entirely in Chinese. This imposes a language constraint on all users without presenting a choice or documenting a justified region-specific requirement.

Content

No source excerpt is available for this finding.

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.

Content

Scanner excerpt · scripts/zcm_lib/parser.py (reported line 13)May include surrounding context.

python
contract_snapshot,
    funcs,
    description,
    include_skillhub_auth=False,
    allow_remote_files=False,
    include_feedback=False,
):

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The version string is hard-coded in Chinese, and the rest of the parser help text in this file is also consistently Chinese-only. This imposes a specific language on all users without any opt-in, fallback, or justification for a locale-specific audience, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code formats user-facing duration and progress text using Chinese-only strings such as “分钟”, “小时”, and later emits fully Chinese status messages. Under the natural-language policy rule, forcing a specific language without user opt-in is a policy violation unless the locale restriction is explicitly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file defines display enums entirely in Chinese and later emits multiple Chinese-only log messages. There is no indication of user opt-in, locale selection, or documented justification for forcing Chinese output, which can violate a policy requiring language choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The platform reminder emits a Chinese-only user-facing message and URL reference with no apparent language negotiation or opt-in. This is a natural-language policy concern because users are forced into a specific locale experience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

When reporting account balance, the code logs a Chinese-only message to the user. There is no evidence of a locale choice mechanism, making this a language policy violation under the provided criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Error and success messages related to report generation are presented only in Chinese. Because these are user-visible operational messages with no opt-in or locale choice, they conflict with the language-choice policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The command reporting path emits Chinese-only messages for generated report locations. This appears to force a specific language for user-facing output without offering choice or documenting a justified locale restriction.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

L88 explicitly warns not to forward platform-returned URLs containing sensitive bind information and instead to use a plain official URL. However, L12 directs API key retrieval via a parameterized URL (?ch=c666), which is inconsistent with the stated preference for sharing ordinary official addresses rather than special linked URLs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

SQP-3 applies to all file types and includes language or locale policy violations. This file presents all operational instructions in Chinese only, with no indication that users may choose another language or that the restriction is justified by a region-specific scope.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The natural-language description is written exclusively in Chinese and states the script renders tender results into a report, with no indication that language is selectable or optional. Per the policy, forcing a specific language or locale without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/zcm_lib/reporting.py:59