Back to skill

Security audit

标书制作专家

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent bid-document generator that processes user-provided tender files, with no artifact-backed evidence of hidden exfiltration, destructive behavior, or persistence beyond normal installation.

Install only in an environment where you are comfortable allowing the agent to read the selected tender files and write generated bid documents. Use explicit invocation, restrict access to a project folder, review/redact confidential pricing or personal data first, and prefer pinned, trusted versions of the Python packages and OpenClaw plugins.

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 (2)

T08 · Insecure Dependencies

Warning
Location
references/requirements.txt:4
Finding

Mutable Python Dependencies Installed Without Integrity Verification

Content
View full analysis

Vulnerability Details

File Location: references/requirements.txt:4-23
Vulnerability Type: Uncontrolled third-party dependency resolution
Risk Level: Medium

Vulnerable Code

text
PyPDF2>=3.0.0
pdfminer.six>=20221105

python-docx>=1.0.0

markdown>=3.5.0

pandoc>=2.3

jieba>=0.42.1
opencc-python>=0.1.7

pytesseract>=0.3.10
pdf2image>=1.16.3

The file instructs users to install these dependencies with pip install -r requirements.txt, but every package is specified using an open-ended minimum version.

Technical Analysis

The dependency manifest does not pin exact versions and does not provide package hashes, a lockfile, an approved package index, or signature-verification requirements. Consequently, the effective code installed by the documented command can change without any modification to this skill.

The use of >= allows pip to select any later compatible package release. If an upstream account, release process, package index, or dependency is compromised, users may automatically install an attacker-controlled release. Python packages can execute code during installation or when imported by document-processing components.

This finding does not establish that any currently listed package is malicious. The vulnerability is the absence of controls that would make dependency resolution reproducible and resistant to supply-chain compromise.

Attack Path

  1. An attacker compromises an upstream package publisher, package release, or package-index distribution channel.
  2. The attacker publishes a malicious version satisfying one of the open-ended constraints.
  3. A user follows the documented installation process and runs pip install -r requirements.txt.
  4. Pip resolves the attacker-controlled release because no exact version or hash restricts the selected artifact.
  5. Malicious package code executes during installation or when the package is imported.
  6. The malicious compo ...[truncated 927 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace all open-ended constraints with exact, reviewed versions.
  2. Generate and commit a reproducible lockfile containing all transitive dependencies.
  3. Record SHA-256 hashes for every permitted distribution and install with pip install --require-hashes.
  4. Restrict installation to an approved package index or internal mirror using explicit index configuration.
  5. Prefer immutable wheel artifacts and disallow unexpected source builds.
  6. Scan locked dependencies for known vulnerabilities and review publisher or ownership changes.
  7. Test dependency upgrades in an isolated environment before updating the lockfile.
  8. Install and run document-processing dependencies in a sandboxed environment with access limited to the required input and output directories.

T08 · Insecure Dependencies

Warning
Location
references/agents/openclaw/skill-registration.yaml:39
Finding

Security-Sensitive OpenClaw Plugins Installed Without Provenance or Integrity Controls

Content
View full analysis

Vulnerability Details

File Location: references/agents/openclaw/skill-registration.yaml:39-47
Additional Location: references/agents/openclaw/instructions.md:15-19, 32-35
Vulnerability Type: Unverified plugin installation
Risk Level: Medium

Vulnerable Code

yaml
prerequisites:
  plugins:
    - name: file-reader
      version: ">=1.0.0"
      optional: false
      install: openclaw plugin install file-reader
    - name: docx-generator
      version: ">=1.0.0"
      optional: true
      install: openclaw plugin install docx-generator

The corresponding platform instructions directly tell users to execute:

bash
openclaw plugin install file-reader
openclaw plugin install docx-generator

Technical Analysis

The skill identifies plugins only by generic registry name and open-ended minimum version. It does not specify an exact version, trusted publisher identity, immutable source reference, checksum, cryptographic signature, or approved registry.

These plugins occupy security-sensitive positions in the workflow. The file-reader plugin processes confidential local PDF and Word files, while the docx-generator plugin receives generated bid content and writes output documents. A spoofed, substituted, or compromised plugin could therefore abuse legitimate workflow access.

This finding does not establish that the named plugins are currently malicious. It identifies a supply-chain trust weakness that permits the installed implementation to change after the skill has been audited.

Attack Path

  1. An attacker compromises the plugin publisher or registry, or introduces a spoofed package that resolves under the documented generic name.
  2. The attacker publishes a release satisfying the >=1.0.0 constraint.
  3. A user or automated installer executes the documented openclaw plugin install command.
  4. OpenClaw retrieves the mutable plugin without a required che ...[truncated 1092 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin each plugin to an exact, reviewed version.
  2. Bind plugin references to a verified publisher or immutable registry identifier.
  3. Publish and verify cryptographic checksums or signatures before installation.
  4. Use an approved private registry or explicit trusted source rather than unrestricted name-based resolution.
  5. Document the permissions required by each plugin and deny all unnecessary filesystem, network, process, and environment access.
  6. Restrict file-reader to user-approved tender paths and restrict docx-generator to a dedicated output directory.
  7. Disable plugin network access unless it is explicitly required and documented.
  8. Require interactive permission review before installing or upgrading a plugin.
  9. Audit plugin updates in an isolated environment before changing the pinned version and integrity metadata.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
Findings (55)

Possible Typosquatting: 'pandoc' resembles popular package 'pandas'

High
Category
Supply Chain
Confidence
70% confidence
Finding

Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The invocation terms are overly broad and include common phrases such as '标书', '投标', and '做标书', which can cause the skill to activate in contexts where the user did not clearly intend full tender-document processing. Because this skill is user-invocable and designed to ingest local PDF/Word files and paths, unintended activation can lead to unnecessary exposure of sensitive procurement documents or file path information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly asks users to upload tender documents or provide local file paths, but it does not warn that these materials may contain sensitive commercial, legal, identity, or bid-pricing information. In procurement contexts, such documents commonly include confidential business data and personally identifiable information, so the absence of a privacy/sensitivity warning increases the risk of accidental over-sharing.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrases are broad, generic requests that overlap with ordinary bid-writing prompts, making unintended invocation plausible. In an agent environment with tool/file access, this can cause the skill to activate and begin processing sensitive tender materials when the user did not explicitly intend to invoke this specific skill.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
81% confidence
Finding

The documentation says the AI will 'automatically execute' a 6-stage workflow, indicating meaningful autonomous behavior after a simple natural-language trigger. In the context of a document-processing skill, this increases the risk of unreviewed analysis, content generation, and possible handling of sensitive procurement data without staged user approval.

Content

Scanner excerpt · docs/README.en.md (reported line 20)May include surrounding context.

md
- "Help me prepare a bid submission"
- "Generate a response to this RFP"

The AI will automatically execute a 6-stage workflow: **Parse Tender → Strategy Analysis → Outline Generation → Chapter Writing → Quality Check → PDCA Auto-Improvement**

## Usage

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README instructs users to upload files or provide local file paths but does not clearly warn that the skill will read and analyze those contents. This weakens informed consent and can lead users to expose sensitive commercial, legal, or proprietary tender documents without understanding the scope of access.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrase at line 17, 'Ayúdame a preparar una oferta', is broad enough to match ordinary business-assistance requests that may not specifically indicate bid-document generation. In agent environments with automatic skill routing, this can cause unintended activation on unrelated conversations, leading the skill to access uploaded files or steer the workflow into tender-analysis behavior without sufficiently clear user intent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README says the skill is triggered with « l'une des phrases suivantes » but does not define whether the list is exhaustive or what precise conditions cause activation. That ambiguity can lead to overbroad matching by the host agent, causing accidental invocation of a file-processing bid-generation skill in response to loosely related user prompts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrase « Préparer une offre » is broad and could match ordinary conversational requests that are not intended to invoke this specific skill. In an agent environment with automatic tool/skill routing, ambiguous activation can cause the skill to process user files or begin document-generation workflows unexpectedly, increasing the risk of unintended data handling or unsafe autonomous actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The quick-start phrases are generic requests like 'create a bid document' or 'help prepare a response,' which are likely to overlap with normal conversation and unintentionally auto-trigger the skill. In a skill that processes uploaded files and local file paths, accidental invocation can cause unintended document analysis, unnecessary access to sensitive tender materials, or confusing workflow hijacking from the user's actual intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README explicitly instructs users to upload or point the tool at local tender files for automatic analysis, but it does not warn that bid documents commonly contain sensitive commercial, personal, or confidential procurement information. In an agent environment with file I/O, this omission can lead users to expose local documents or confidential tender contents to the model or connected tooling without informed consent or handling guidance.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill advertises broad, natural-language trigger phrases such as creating or analyzing a tender response, which can easily overlap with ordinary user conversation. In an agent environment, this can cause unintended invocation of the skill, leading to unexpected file access, document processing, or workflow execution without sufficiently explicit user intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

The documentation is entirely presented as a Chinese-language usage guide and does not indicate that users may choose another language or locale for interaction or output. Under the policy, forcing a specific language without opt-in can be a natural-language policy violation unless the locale restriction is clearly justified and documented.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are generic everyday requests such as '帮我做标书' and '生成投标文件', which makes accidental or overly eager activation likely in a general-purpose agent. In a skill that processes uploaded files and may perform multi-step autonomous work, broad invocation phrases increase the chance the agent will read, analyze, and generate documents without sufficiently explicit user intent for this specific skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README instructs users to provide uploaded documents or local file paths and states compatibility with agents that support file read/write, but it does not clearly disclose what files may be accessed, what outputs will be written, or what consent boundaries apply. In an agent environment, this lack of transparency can lead to overbroad file access expectations, unintended reading of sensitive tender materials, or silent creation/modification of files during automated processing.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documented trigger phrases are generic requests such as '幫我做標書' and '寫應標書', which are likely to appear in normal conversation and can cause the skill to activate unintentionally. Because this skill processes tender documents and can launch a multi-step workflow, accidental invocation could lead to unintended file access, document generation, or disclosure of sensitive procurement content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The usage instructions tell users to upload a tender file or provide a local path, but they do not clearly warn that the skill will read those files and may automatically generate and write output documents. In the context of bid preparation, the inputs often contain confidential commercial, technical, or pricing information, so missing disclosure and consent around file I/O increases the risk of unintended data exposure or surprising side effects.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The entire instruction file is written in Chinese and all examples, prompts, and outputs assume Chinese-language interaction, but the file does not state that this is an optional locale mode or a region-specific requirement. Under SQP-3, forcing a specific language without user opt-in is a natural-language policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document is written as a general agent adaptation guide, but it prescribes Chinese fonts, Chinese bidding expertise, and Chinese-language document handling as defaults rather than offering a language or locale choice. Because SQP-3 applies to all file types and prohibits forced language/locale constraints without user opt-in, this constitutes a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill explicitly accepts a user-supplied file path for tender documents but provides no user-facing disclosure about local file access, document parsing, or handling of potentially sensitive procurement data. In an agent setting, ambiguous file-path access can lead to users unintentionally granting access to sensitive local or mounted documents beyond what they expected.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The assemble step produces a complete bid document in Markdown or DOCX format, but the manifest does not clarify whether this may write files, where outputs are stored, or whether existing files could be overwritten. In a tool-using agent, missing disclosure around output side effects can cause unintended data loss or silent creation of sensitive artifacts.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file is entirely written in Chinese and explicitly anchors the skill to Chinese bidding norms, including '中国标书格式规范'. Under the policy, locale/language constraints should either be optional or clearly documented as a justified region-specific tool; this file does not clearly state that the skill is only intended for Chinese-region tenders or offer any language choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The system prompt is written entirely in Chinese and instructs the agent how to operate, with no indication that users may choose another language or that the skill is intentionally limited to a Chinese-only regional context. Under the policy, forcing a specific language without user opt-in 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 file’s natural-language metadata and operational descriptions are entirely in Chinese, including the display name and usage context, with no indication that users can opt into another language. The policy explicitly flags skills that force a specific language or locale without user choice, and this workflow does not document any region-specific justification for that restriction.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/prompts/system-prompt.md:1