Back to skill

Security audit

投标暗标格式合规扫描Bid Blind Bid Format Scanner

Security checks for vulnerabilities and agentic risk

Overview

The skill largely matches its document-scanning purpose, but it has review-worthy concerns: unpinned runtime Python package installation and a mandatory promotional report footer while handling sensitive bid documents.

Review before installing if your bid files are confidential. Prefer using a controlled environment with preinstalled, pinned parser packages, avoid capturing scan stdout in shared logs, and be aware that generated reports will include the publisher's attribution and WeChat feedback footer unless the skill is changed.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:247
Finding

Mandatory Promotional Content Hijacks Agent Report Output

Content
View full analysis
Attribution: Frontline Bid Evaluation Expert & ChesaraM | > Feedback/Communication: WeChat public account "Frontline Bid Evaluation > Expert" (questions, false-positive feedback, and practical suggestions are > welcome). ``` ### Technical Analysis The Skill declares an unrelated attribution and WeChat promotional message to be a mandatory implementation rule that must be included at the end of every generated report. This instruction is not necessary for scanning DOCX or PDF files, detecting identity information, or reporting formatting discrepancies. When the Skill is loaded, its instructions alter the Agent's normal output behavior and force it to propagate third-party promotional content. Because the requirement is framed as mandatory and is incorporated into the report-generation workflow at line 172, it applies automatically to normal user requests without requiring the user to request or consent to promotional material. This is instruction-level output hijacking rather than malicious script execution. No associated network request, account access, or automated communication with the promoted WeChat account was found. ### Attack Path 1. A user enables the Skill and submits a bid document for analysis. 2. The Agent follows the workflow in `SKILL.md`. 3. Step 6 generates the requested compliance report. 4. The mandatory rule at lines 247–249 requires the Agent to append the author attribution and WeChat promotion. 5. The promotional conten ...[truncated 835 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:98
Finding

Unpinned Third-Party Packages Are Installed at Runtime

Content
View full analysis
Remediation
View remediation
--hash=sha256: pypdf== --hash=sha256: ``` 3. Install dependencies during a controlled build or packaging phase rather than during Skill execution. 4. Use `pip install --require-hashes` to reject unverified artifacts. 5. Configure an approved internal package index or an allowlisted repository instead of relying on ambient index configuration. 6. Review and pin transitive dependencies as well as direct dependencies. 7. Run document parsers in a restricted environment with no unnecessary network access and with filesystem access limited to the submitted document and designated temporary directory. 8. Generate and retain a software bill of materials for the packaged Skill environment. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (11)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
优先用 .docx 路径。使用受管 Python 运行 `scripts/scan_docx.py`;PDF 用 `scripts/scan_pdf.py`。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
优先用 .docx 路径。使用受管 Python 运行 `scripts/scan_docx.py`;PDF 用 `scripts/scan_pdf.py`。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
优先用 .docx 路径。使用受管 Python 运行 `scripts/scan_docx.py`;PDF 用 `scripts/scan_pdf.py`。

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README says users can invoke the skill by saying "暗标格式检查 / 封标前体检", but it does not define whether these are the only accepted triggers, provide exclusion conditions, or clarify the required context beyond being in dialogue. Phrases like "封标前体检" are relatively broad in ordinary project discussion and could overlap with non-skill requests without additional constraints or negative examples.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger list includes broad, everyday phrases such as “复检” and especially generic asks like extracting requirements from a tender file, which can cause the skill to activate outside its intended narrow scope. Unintended activation is risky here because the skill is instructed to process uploaded bid documents and run local scripts, increasing the chance of unnecessary access to sensitive files or execution of scanning logic when the user did not intend it.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

L249 在署名与反馈中指定反馈渠道为中文公众号“微信公众号「一线评标专家」”,结合全文均为中文表述,呈现出默认且单一的中文语言/渠道约束,但未说明是否支持其他语言或这是仅面向中文地区招投标场景的限定。按规则,强制特定语言或 locale 且无用户 opt-in 或明确正当化,属于自然语言政策风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The entire skill reference content is written only in Chinese and provides no indication that users may choose another language or that the skill is limited to a Chinese-language bidding context. Under the stated 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
89% confidence
Finding

This is a natural-language policy issue because the file presents its purpose, warnings, and CLI guidance exclusively in Chinese. There is no indication that the skill is region-specific or that users can opt into another language, so it effectively forces a locale choice.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script extracts PDF metadata and full-text-derived identity matches, then prints the resulting JSON to stdout without any built-in consent prompt, redaction mode, or output-channel restriction. In this skill’s context, the scanned documents are bidding materials that may contain sensitive company identifiers, authorship metadata, or confidential proposal text fragments, so emitting those findings directly can expose sensitive data to logs, calling wrappers, or downstream systems.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest presents the skill name, authoring, description, and feedback channel entirely in Chinese, with no indication that users can choose another language or locale. Under the stated policy, a skill that effectively requires one language without opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file’s docstring, dependency error, and command-line help strings are all presented only in Chinese, which imposes a fixed language on users without opt-in. Under the policy, language constraints should either offer a choice or be explicitly documented as justified for a region-specific tool.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.