Back to skill

Security audit

Aminer Open Academic 1.0.5

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-built for AMiner academic searches, but it needs review because it encourages broad paid authenticated API use and documents unsafe token handling.

Review this before installing if you will use a real AMiner token. Prefer an environment variable or protected prompt instead of placing the token in commands, confirm before paid API calls, avoid sending confidential research topics, and be careful with the raw API mode because it exposes more callable surface than a strict allowlist.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/aminer_client.py:773
Finding

AMiner API token exposed through command-line arguments

Content
View full analysis
--action scholar_profile --name "Andrew Ng" ``` The supplied value is subsequently used as an authorization credential: ```python headers = { "Authorization": token, "Content-Type": "application/json;charset=utf-8", } ``` ### Technical Analysis Command-line arguments are generally not a secure channel for secrets. Depending on the operating system and deployment environment, the complete invocation may be exposed through: - Shell history files. - Process-listing facilities while the client is running. - Process telemetry and audit logs. - CI/CD job output or orchestration metadata. - Wrapper scripts and operational troubleshooting records. The network use of the token itself is consistent with the Skill's declared functionality: it is placed in the `Authorization` header and sent over HTTPS to the fixed AMiner endpoint. The security flaw is the method used to introduce the token into the process. The audit found no evidence that the token is intentionally transmitted to an unrelated host. Nevertheless, local disclosure is sufficient to compromise the credential. ### Attack Path 1. A user follows the documented examples and invokes the client with a real token in `--token`. 2. The operating environment records the command in shell history, process telemetry, job ...[truncated 922 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/aminer_client.py:858
Finding

Raw API mode dispatches through unrestricted module-global callable lookup

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (19)

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger text is extremely broad and explicitly says to proactively use the skill even for generic requests like 'help me look up a scholar' or 'find papers about X'. This can cause over-triggering on ordinary academic questions, leading to unnecessary external API calls, unintended data disclosure of user queries, and token-billed actions without informed user intent.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill clearly instructs use of an external networked API and a Python client, but it does not declare any explicit tool scope or permissions boundary. That mismatch can cause the agent to invoke network access more broadly than users or reviewers expect, weakening least-privilege controls and auditability.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

The natural-language instructions and trigger descriptions are written entirely in Chinese and define activation behavior in Chinese terms, but the skill does not state that it is China-specific or offer the user a language choice. This can violate language/locale policy when users are not given an explicit opt-in to a specific language.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The instructions explain how to obtain and use an API token but do not warn that user queries and potentially sensitive research topics will be sent to AMiner as authenticated requests. Without a disclosure and consent step, users may unknowingly transmit confidential prompts, institutional data, or billing-linked tokens to a third-party service.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The natural-language prompts and expected behavior are written exclusively in Chinese across the eval cases, which indicates a language-specific requirement. There is no opt-in, alternative language option, or documented justification that this skill is intended only for a Chinese-language or region-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The natural-language content of the skill file is fully Chinese and does not indicate that users may choose another language or that the documentation is intentionally limited to a Chinese-only audience. Under the stated policy, forcing a specific language without user opt-in can be a language/locale policy violation.

Content

No source excerpt is available for this finding.

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/api-catalog.md (reported line 131)May include surrounding context.

| doi | DOI | | Total / total | 总数 |

curl 示例(自然语言问答):

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/paper/qa/search' \

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/api-catalog.md (reported line 181)May include surrounding context.

| raw | 期刊名称 | | venue | 期刊信息对象 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/paper/info' \

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/api-catalog.md (reported line 411)May include surrounding context.

| n_citation | 引用量 | | total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/person/search' \

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/api-catalog.md (reported line 606)May include surrounding context.

| org_name | 机构名称 | | total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/organization/search' \

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/api-catalog.md (reported line 643)May include surrounding context.

| language | 语言 | | total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/organization/detail' \

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/api-catalog.md (reported line 765)May include surrounding context.

|--------|------| | org_name | 归一化机构名称 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/organization/na' \

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/api-catalog.md (reported line 798)May include surrounding context.

| 二级ID | 二级机构 ID | | Total / total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/organization/na/pro' \

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/api-catalog.md (reported line 832)May include surrounding context.

| name_zh | 期刊中文名称 | | total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/venue/search' \

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/api-catalog.md (reported line 866)May include surrounding context.

| alias | 别名 | | type | 期刊类型 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/venue/detail' \

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/api-catalog.md (reported line 902)May include surrounding context.

| offset | 当前偏移量 | | total | 总数 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/venue/paper/relation' \

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/api-catalog.md (reported line 937)May include surrounding context.

| title | 专利英文标题 | | title_zh | 专利中文标题 |

curl 示例:

bash
curl -X POST \
  'https://datacenter.aminer.cn/gateway/open_platform/api/patent/search' \

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code file contains extensive natural-language strings for the module description and CLI usage that are only in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is clearly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation instructs users to place a bearer token directly in curl examples but does not warn about shell history, terminal logging, CI logs, screenshots, or accidental commit exposure. While the token placeholder itself is not a secret, this pattern normalizes unsafe handling of live credentials and can lead to inadvertent leakage when users substitute real tokens.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.