Back to skill

Security audit

公众号选题雷达

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed WeChat topic research tool that uses a paid API with user confirmation and writes local reports, with no hidden persistence or deceptive behavior found.

Install only if you are comfortable sending the keywords, WeChat account identifiers, and public article URLs you choose to api.we-media.cn and paying for the resulting API calls. Prefer an environment variable for the API key, review the cost estimate before adding --yes, and choose output/snapshot paths deliberately because the skill writes local report files.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared description promises a content/topic-selection radar for WeChat public accounts: keyword expansion, hot-search translation, historical article clustering, and heuristic scoring of demand/competition/opportunity. The supplied code does none of that. Instead, it is an infrastructure/contract module centered on API metadata and billing estimation. Its core functions are catalog(), price_micros(), snapshot(), and estimate_plan(), which respectively retrieve product listings, compute price adjustments, persist/compare snapshots, and estimate the monetary cost of API request plans. Although there is a small WeChat-specific short-link pricing check inside price_micros(), that is only for billing adjustment and not for topic analysis. Therefore the code's primary purpose is materially different from the declared purpose, indicating a clear description-behavior mismatch.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares no explicit tool scope or allowed-tools despite clearly instructing use of environment variables, local file I/O, and network access. That under-specification weakens containment and review because the runtime may permit broader capabilities than users or operators expect, increasing the blast radius if the skill is misused or modified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger description is broad enough to activate on generic writing-help requests, causing the skill to engage in data-collection and paid-network behaviors in situations where the user may only want brainstorming. Over-broad activation increases the chance of unintended external requests, unnecessary access to API-backed capabilities, and surprise charges.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The conversation examples use common everyday phrasing like '不知道写什么' and '帮我找选题', which can match many benign ideation chats unrelated to this specific paid data-gathering workflow. In context, accidental activation is more dangerous because the skill is designed to perform network collection and cost-bearing API operations after minimal prompting.

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 · SKILL.md (reported line 519)May include surrounding context.

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

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 · SKILL.md (reported line 520)May include surrounding context.

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

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 · SKILL.md (reported line 521)May include surrounding context.

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

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 · SKILL.md (reported line 522)May include surrounding context.

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The snapshot function creates directories, writes JSON data to a temporary file, and atomically replaces the target path, which can overwrite prior snapshot contents. Although the function name and docstring describe its behavior for developers, there is no user-facing disclosure, prompt, or warning at the point of the write operation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The raised ValueError contains a Chinese-only message, which imposes a specific language for users encountering this error. The file does not provide a language choice, fallback, or documented justification for restricting messages to Chinese.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The generated account-report HTML sets lang="zh-CN", which forces a specific language/locale in user-facing output. The file contains no option for users to select another locale and no documented justification that the skill is limited to a China-specific audience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The generated keyword-report HTML sets lang="zh-CN", which forces a specific language/locale in user-facing output. The file contains no option for users to select another locale and no documented justification that the skill is limited to a China-specific audience.

Content

No source excerpt is available for this finding.