Back to skill

Security audit

专利参考文献

Security checks for vulnerabilities and agentic risk

Overview

The bibliography formatter works locally as promised, but its optional online client has spreadsheet-safety and credential-storage gaps that need review.

Use the local formatter for supplied records. Before enabling online lookups, approve what will be sent and the spending limit, and expect automatic trial-key storage. Request optional, securely permissioned credential storage and formula escaping for candidate exports; until then, import those CSV files as text with formulas disabled.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/patentmax_client.py
Finding

External patent metadata is exported as executable spreadsheet formulas

Content
View full analysis

Impact

A malicious metadata value can execute a spreadsheet formula instead of displaying literal text. Depending on spreadsheet support and security settings, formulas can initiate attacker-directed network requests or present deceptive hyperlinks. This does not establish automatic operating-system command execution.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (46)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
100% confidence
Finding

The executable subcommands implement a broad patent research and analytics client, not a bibliography formatter. No supplied code generates numbered reference entries or applies citation templates with source provenance and missing-data notes. Normalizing bibliographic fields and exporting a candidate CSV provide limited overlap, but do not account for the materially different primary purpose or the external retrieval and analytics capabilities. The citation command retrieves relationship data rather than formatting references.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
100% confidence
Finding

The supplied shell command performs no bibliography preparation or formatting. Reading and printing part of an API credential is an undeclared action unrelated to processing supplied bibliographic records. The snippet demonstrates partial credential disclosure to output, not network exfiltration.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The supplied chunk describes a patent-search and similarity-retrieval workflow, not preparation of bibliography entries from an existing patent list. Both the initial technical-feature search and subsequent semantic expansion are undeclared discovery capabilities. The chunk shows no bibliography formatting or preservation of the fields specified in the description.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The supplied commands implement patent discovery and content retrieval rather than bibliography formatting. Bibliographic retrieval could support the declared purpose, but semantic similarity, citation relationships, full-text access, and figure export materially exceed it. Citation-relationship retrieval also enters the area explicitly excluded by the description, although the snippet does not itself demonstrate citation-network analysis. No numbered bibliography generation or template formatting is shown.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared purpose is to organize existing patent records into traceable references. The supplied command instead performs a topical patent search and contains no bibliography-formatting operation. Discovering new patent records is a distinct capability, not merely an implementation detail of formatting supplied records. The client implementation is not shown, so its specific data sources and network behavior cannot be verified.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The supplied code checks an external service's health rather than processing patent records or formatting references. Nothing in the chunk establishes this request as a supporting implementation detail for the declared task. No local-data transmission or bibliography-generation behavior is shown.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared purpose is bibliography preparation from an existing patent list. The supplied command instead searches for patents similar to a seed patent, introducing an undeclared discovery capability rather than formatting references. The snippet does not establish citation-network analysis or reveal the client’s underlying data sources.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared workflow concerns bibliography preparation from existing records. The supplied command instead performs a topic-based patent search and saves its results; it does not format bibliography entries. This is an undeclared discovery capability, not merely an implementation detail of formatting supplied records. The client implementation is not shown, so its precise data source and network behavior cannot be established.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The supplied command searches for patents; it neither processes supplied bibliographic records nor formats references. Because the declared purpose is specifically bibliography preparation from an existing patent list, this search operation is an undeclared capability rather than a demonstrated supporting formatting step.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared workflow starts with an existing patent list and produces traceable bibliography entries. The supplied command instead performs patent discovery through a search client using a hard-coded applicant query; it does not show bibliography formatting. This is a materially different capability, not merely an implementation detail supporting the stated formatting task. The snippet alone does not establish the client's underlying network or filesystem behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The supplied command searches for patents on a fixed technical topic; it does not format citations or preserve fields from supplied records. External lookup could support bibliography preparation, but this broad topical query is not tied to validating or completing any supplied record, so it represents an undeclared discovery capability rather than a supporting formatting detail.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The commands implement a patent-information search workflow, including full-text retrieval and similar-patent discovery, rather than producing numbered bibliography entries from supplied records. Citation retrieval could support bibliography preparation, but similarity search and full-text retrieval are additional capabilities not covered by the declared purpose. The supplied chunk does not show bibliography formatting or establish citation-network analysis.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The supplied commands implement a patent screening and candidate-management workflow, not the declared bibliography-formatting workflow. In particular, changing keep/exclude status with substantive selection reasons is an undeclared capability, rather than merely a formatting implementation detail. The chunk shows no numbered reference generation or handling of the declared bibliographic fields. It also does not establish that full texts are retrieved or that citation-network analysis occurs.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The chunk performs an external claims lookup, not bibliography preparation. Claims are substantive patent content rather than the bibliographic fields described, and the request uses a hard-coded publication identifier. This is an undeclared retrieval capability, not merely an implementation detail of formatting supplied references. The API credential is used for authentication; the code alone does not establish credential theft or other malicious activity.

Content

No source excerpt is available for this finding.

Code capability 'network' detected in scripts/patentmax_client.py but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
84% confidence
Finding

The client can send search expressions, company names, patent identifiers, and authentication credentials to an external service, although the declared skill purpose is formatting already-supplied bibliography records and the reported permissions do not cover networking. If an agent invokes these commands as an ordinary bibliography step, potentially sensitive research inputs can leave the environment without a separate authorization checkpoint; transmission is command-triggered, not automatic on import.

Content

No source excerpt is available for this finding.

Code capability 'env' detected in scripts/patentmax_client.py but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not covered by the declared 'allowed-tools' preapproval. Review the host runtime's actual enforcement policy; runtime permissions are unknown unless separately verified, and this declaration alone does not establish a permission ceiling.

Content

No source excerpt is available for this finding.

Automatic external API credential provisioning and persistence are unjustified for formatting supplied bibliographic records.

High
Category
Excessive Agency
Confidence
98% confidence
Finding

When an API command has no configured key, ensure_api_key() automatically provisions a third-party trial credential and persists it without first requesting consent. This creates external-service state and durable credential storage that are unnecessary for formatting supplied records; the later consent guidance for saving formal keys does not govern this automatic trial-key path.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/api-reference.md (reported line 16)May include surrounding context.

bash
curl -s -H "Authorization: Bearer $PATENTMAX_API_KEY" \
  "https://api.ip930.com/api/patent?pn=CN109761224A"

服务端自己完成内部寻址,这些前置调用不进用户账单。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/api-reference.md (reported line 89)May include surrounding context.

bash
curl -s -H "Authorization: Bearer $PATENTMAX_API_KEY" \
  "https://api.ip930.com/api/patent?pn=CN109761224A"

某一块上游取不到时,该字段为 null 并在 unavailable 里列出,其余照常返回;

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/api-reference.md (reported line 114)May include surrounding context.

bash
curl -s -H "Authorization: Bearer $PATENTMAX_API_KEY" \
  "https://api.ip930.com/api/claims?pn=CN109761224A"

只要同时需要两块以上,就用 /api/patent——它一口价,拆开单买反而贵。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/api-reference.md (reported line 48)May include surrounding context.

服务端直接返回上次的结果、不再扣费;同一个键换了参数会被拒(400);上一次还在处理中返回 409。

bash
curl -s -H "Authorization: Bearer $PATENTMAX_API_KEY" -H "Idempotency-Key: task42-search-1"   "https://api.ip930.com/api/search?q=%E6%B5%B8%E6%B2%A1%E5%BC%8F%E6%B6%B2%E5%86%B7&ds=cn&size=20"

网络超时、不确定上一次有没有成功时,用同一个键重发,不要换键。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/api-reference.md (reported line 73)May include surrounding context.

curl -s -H "Authorization: Bearer $PATENTMAX_API_KEY"
--data-urlencode 'q=(固态电池 OR 全固态电池) AND 电解质'
--data-urlencode 'ds=all' --data-urlencode 'size=20'
-G "https://api.ip930.com/api/search"

text

> 检索式里有中文和括号,一定用 `--data-urlencode -G`,别手工拼 URL。

The reference directs agents to paid patent-content and analysis capabilities unrelated to formatting supplied bibliography records.

Medium
Category
Excessive Agency
Confidence
94% confidence
Finding

The reference recommends paid full-text retrieval and exposes analysis capabilities beyond formatting supplied bibliography records, without locally requiring user authorization. If treated as an operational workflow, this can cause unnecessary external requests and charges for a task that should normally remain local.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/faq.md (reported line 35)May include surrounding context.

md
- **密钥复制不全。** 前后有没有多余空格、有没有漏掉尾部字符
- **少了 `Bearer ` 前缀。** 用 curl 时 header 必须是 `Authorization: Bearer pm_live_xxx`,只写密钥不行
- **密钥被撤销了。** 到 [控制台](https://api.ip930.com/features/api-platform)看状态

> 还有个容易踩的:如果请求里带了 `Authorization` 头,URL 上的 `?apikey=` 就不会被读取。两种方式选一种,别混用——带了一个格式错误的 header,正确的 URL 参数也会被忽略。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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/faq.md (reported line 41)May include surrounding context.

md
## 402 余额不足

到[控制台](https://api.ip930.com/features/api-platform)充值。

新账户的体验额度分两笔:注册送 ¥10,第一次调用成功后再送 ¥40。如果第二笔一直没到,确认第一次调用确实返回了 200——失败的调用不算。