T01 · Skill Instruction Hijacking
- Location
SKILL.md:142- Finding
Mandatory Instruction-Priority Override and Branded Output Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly purpose-aligned, but it needs Review because it handles sensitive bid documents and credentials while also retaining undeclared local metadata and allowing under-scoped local file writes.
Install only if you are comfortable sending tender and bid documents, which may contain confidential business data, to the vendor service under your API-key account. Before use, confirm the vendor retention and account-management terms, keep config.json private, avoid untrusted custom report basenames or output directories, and be aware that ~/.zcm/projects.json may retain document names and job/project IDs unless removed.
SKILL.md:142Mandatory Instruction-Priority Override and Branded Output Injection
scripts/zcm_lib/storage.py:62Undeclared Persistent State Written Outside the Declared Filesystem Boundary
scripts/report_lib/generator.py:13Arbitrary File Write Through Unsanitized Report Basename and Output Directory
Referenced artifact was not completely inspected
**升级 skill 必须保留配置**:如果当前已安装目录存在 `config.json`,升级时不得删除、覆盖或替换该文件;只能更新 `SKILL.md`、`scripts/`、`references/` 等 skill 内容文件。本地生成目录 `biaoshu-bailian-files/` 也必须保留。
Line L27 instructs the agent to present a specific user-facing term in Chinese: “展示给用户时统一说‘可用字数’”. This is a language/locale constraint in natural-language guidance and does not offer the user a language choice or opt-in.
The workflow instructs users to upload tender/bid documents to remote APIs but does not warn that such files may contain sensitive commercial, legal, pricing, or personally identifiable information. This omission can lead users to disclose confidential material without understanding the privacy, retention, and third-party processing implications, increasing the risk of data leakage or compliance violations.
This markdown file states that uploaded files and task results are stored on the 百炼®标书 server and retained for about 7 days. That is a data-handling behavior with privacy implications, but the document presents it as an operational note rather than a clear warning or caution to users.
The entire skill guidance is written in Chinese and does not indicate that users may choose another language or locale. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale restriction is explicitly justified.
Line L149 states that output and reports have already been converted to Chinese and should be presented directly in Chinese. This imposes a specific language on users without documenting a locale-specific justification or offering a user choice, which matches the language/locale policy-violation criterion.
The file contains extensive natural-language UI/report text in Chinese, including section headers and report titles, with no visible mechanism for user language selection or documentation that the skill is intentionally limited to a Chinese-language context. Under the policy, forcing a specific language without opt-in can be a natural-language policy violation.
The generated HTML explicitly sets lang='zh-CN' and uses fixed Chinese branding and footer text, while other strings throughout the file are also hardcoded in Chinese. This enforces a specific language/locale in the rendered report without any visible user opt-in or configuration mechanism, matching the language/locale policy violation criteria.
The file emits natural-language messages in Chinese when validation fails, which enforces a specific language for users. This is a locale-policy concern because the code does not offer any mechanism for language selection or document a justified region-specific restriction.
This line presents a user-visible size-limit error only in Chinese, again forcing a single language in normal operation. Without opt-in, configurability, or clear regional justification, this matches the language/locale policy violation category.
This is another user-facing message that forces Chinese output regardless of user preference. Repeated hard-coded locale-specific strings indicate the skill does not offer a language choice or documented locale limitation.
The error output uses Chinese text such as '请求失败' and 'message' formatting directly in user-facing CLI messages. This imposes a specific language without any visible opt-in, fallback, or documented region-specific justification in the file.
This code emits multiple hard-coded Chinese user-facing messages, and the pattern continues throughout the file in logs, errors, and progress output. That imposes a specific language on users without any visible language selection or documented region-specific constraint, which violates the language/locale policy for natural-language behavior.
Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.
contract_snapshot,
funcs,
description,
include_skillhub_auth=False,
allow_remote_files=False,
include_feedback=False,
):
The version string shown to users is hard-coded in Chinese, which imposes a specific language on all users. In this file there is no opt-in, alternative locale, or documentation indicating that the skill is intentionally limited to Chinese-speaking users.
This code formats user-facing duration strings entirely in Chinese (for example, 分、秒、小时、天) and later constructs additional Chinese progress text. The policy for natural-language violations applies to all file types, and there is no indication here that users can opt into Chinese output or that the skill is explicitly limited to a Chinese-language context.
The function builds all progress updates in Chinese, including status headings, stage descriptions, and completion text such as “任务已提交,正在排队” and “我会继续后台监听,完成后交付成品链接”. Because no language choice, fallback, or documented regional justification is present in this file, this is a natural-language locale policy concern.
The file hard-codes Chinese translations for risk and priority labels and uses Chinese user-facing log messages throughout the reporting flow. This creates a locale-specific user experience without any visible opt-in, fallback, or configuration mechanism, which matches the language/locale policy violation criteria.
The skill documentation is entirely in Chinese and presents the workflow as Chinese-only without indicating that users can choose another language or that the locale restriction is intentional. Under the language/locale policy, forcing a specific language without user opt-in can be a natural-language policy issue.
This markdown file contains user-facing API documentation exclusively in Chinese, and nowhere indicates that the skill supports multiple languages or that Chinese is a justified locale restriction. Under the policy rule, forcing a specific language without user opt-in can be a natural-language policy violation.
At L26, the document states that semantic_review=false or enable_semantic_review=false disables semantic review and leaves only rule-based checking. But L69 instructs consumers that if semantic_review or partial_summary indicates semantic review is not fully completed, they must present the result as partial/incomplete. This creates an intent-level contradiction between an intentionally disabled semantic review and an incomplete semantic review state.
The file presents all user-facing documentation and operational instructions exclusively in Chinese, and it does not state that the skill is region-specific or provide any opt-in or language-selection mechanism. Under the policy criteria, forcing a specific language without user choice can be a natural-language policy violation.
The exception text is hardcoded in Chinese, which imposes a specific language on users without any opt-in or alternative locale. This matches the policy category for language or locale constraints because the file also contains user-facing CLI text only in Chinese.
The argparse description and help strings are all presented in Chinese, which forces a single language for user interaction. There is no indication of locale choice, fallback, or documented justification for this restriction.
The natural-language documentation is entirely in Chinese and does not indicate that other languages are supported or that the locale restriction is intentional. Under the stated policy, forcing a specific language without user opt-in can be a language/locale policy violation.
Detected: suspicious.dynamic_code_execution