Back to skill

Security audit

标讯 · 建筑工程招标中标与招投标数据查询

Security checks for vulnerabilities and agentic risk

Overview

The research features fit the stated purpose, but conflicting instructions could trigger account re-registration when an existing API key stops working.

Review the conflicting account-recovery instructions before installing. Preserve existing credentials and require an explicit account-change decision after authentication failures. Providing your own API key avoids device fingerprinting. If choosing trial registration, understand that its MAC hash is a stable device identifier; protect the saved key and generated login links. Remote service behavior and data retention were not tested.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The supplied chunk performs local device fingerprinting rather than bidding or procurement research. The declared purpose does not disclose device identification or hardware-address access, and the chunk shows no connection establishing this as a necessary supporting implementation detail. It does not itself transmit the identifier, persist it, or complete account registration.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The supplied code performs device identification rather than procurement or bidding research. Collecting and hashing a local hardware address is not disclosed in the description, and the chunk provides no demonstrated connection to the declared functions that would establish it as a necessary supporting detail. No transmission, storage, or actual registration is shown.

Content

No source excerpt is available for this finding.

Authentication-error handling directs re-registration even when credentials exist, contradicting the missing-credentials-only registration boundary.

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

The error table directs re-registration for invalid, expired, or disabled keys even when credentials exist, contradicting the explicit missing-credentials-only gate. An agent following that branch could attempt unnecessary device collection and account provisioning, potentially switching account context or replacing saved credentials; the separate consent and recovery gates reduce, but do not resolve, this ambiguity.

Content

No source excerpt is available for this finding.

The skill collects and transmits a persistent hardware fingerprint for trial-account provisioning, a capability not declared by its tender-query and analytics manifest.

Medium
Category
Excessive Agency
Confidence
88% confidence
Finding

The commands at L065–L099 obtain a network adapter's MAC address and derive a deterministic SHA-256 fingerprint; L109–L125 send that fingerprint with platform and architecture information to an account-registration endpoint. Device-based trial deduplication is separate from the manifest's bidding research, company analysis, and balance-query capabilities. The explicit consent requirement mitigates the privacy risk, but does not make hardware fingerprinting a direct requirement of the stated purpose.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/auto-register.md (reported line 130)May include surrounding context.

md
> ### ⚠️ 请求体必须用 JSON 序列化函数生成,不要手拼字符串
>
> 用 `json.dumps(payload)` / `requests.post(url, json=payload)` / `JSON.stringify(payload)`,
> 或 `curl -d @file`;**不要用字符串拼接,也不要用 Python 的 `str(dict)`**
> (后者产出单引号,服务端会报 `Expecting property name enclosed in double quotes`)。
>

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/auto-register.md (reported line 131)May include surrounding context.

md
> ### ⚠️ 请求体必须用 JSON 序列化函数生成,不要手拼字符串
>
> 用 `json.dumps(payload)` / `requests.post(url, json=payload)` / `JSON.stringify(payload)`,
> 或 `curl -d @file`;**不要用字符串拼接,也不要用 Python 的 `str(dict)`**
> (后者产出单引号,服务端会报 `Expecting property name enclosed in double quotes`)。
>
> 历史教训:曾有版本采集 `home_path`,Windows 的 `C:\Users\alice` 直接拼进 JSON 字符串时

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/auto-register.md (reported line 195)May include surrounding context.

text

注意事项:
- 目录不存在时先 `mkdir -p ~/.zlbx`
- 文件已存在时**合并而非覆盖**(保留用户可能的其他配置)
- `source: "auto"` 字段必须写入,**这是后续判断「是否输出自动登录链接」的关键依据**